Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > SDL и SMPEG


Автор: NextAlex 17.5.2006, 20:44
Всем привет!

Есть программа на C++ под SDL: выводит кое-какую графику, проигрывает музыку - в общем зачаток кроссплатформенного медиаплеера.
Соответственно появилось желание добавить возможность проигрывания видео. Кто работал с библиотекой SMPEG в связке с SDL ну или без связки подскажите пожалуйста как вообще это делается или дайте линк на толковую документацию.
Если у кого есть предложения по выводу видео иными средствами кроме SMPEG - только приветствую (информации по выводу видео практически нет, посему выбор пока пал на SMPEG), но от SDL отказаться не могу.

PS. Прошу прощения у модератора за возможный оффтопик, но в этом разделе обсуждений SDL больше чем в "Мультимедиа". 

Автор: bsa 18.5.2006, 11:55
SMPEG = SDL MPEG Player Library
Я посмотрел MPEG.h и не увидел ничего сложного:
Код
MPEG * video;
...
video = new MPEG( file_rwop );
...
video->Play();
...
 

Автор: NextAlex 18.5.2006, 20:21
Нашел, на самом деле все делается немного иначе.

Код

#include "smpeg.h"
#include "SDL_mixer.h"

        .. set up the mixer audio ...

        /* Note the last parameter is zero! */
        mpeg = SMPEG_new("file.mpg", &info, 0);

        /* Play the movie, using SDL_mixer for audio */
        SMPEG_enableaudio(mpeg, 0);
        if ( play_audio ) {
                SDL_AudioSpec audiofmt;
                Uint16 format;
                int freq, channels;

                /* Tell SMPEG what the audio format is */
                Mix_QuerySpec(&freq, &format, &channels);
                audiofmt.format = format;
                audiofmt.freq = freq;
                audiofmt.channels = channels;
                SMPEG_actualSpec(mpeg, &audiofmt);

                /* Hook in the MPEG music mixer */
                Mix_HookMusic(SMPEG_playAudioSDL, mpeg);
                SMPEG_enableaudio(mpeg, 1);
        }
        SMPEG_play(mpeg);

        /* Stop the movie and unhook SMPEG from the mixer */
        SMPEG_stop(mpeg);
        Mix_HookMusic(NULL, NULL);


но всё равно спасибо. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)