Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DirectShow - как зациклить видеоролик?

378
08 июня 2007 года
KurL
171 / / 01.08.2005
Смотрю пример SDK DirectShow - cutscene, который может проигрывать видеоролик на весь экран. Хочу модернизировать его - пусть он зациклит ролик (в тот момент, когда ролик закончится начнёт его показывать заново).

можно ли проресетить граф или как это с ними (с графами делается)?

Код (в общих чертах )

Код:
static IGraphBuilder  *pGB = NULL;
static IMediaControl  *pMC = NULL;
static IVideoWindow   *pVW = NULL;
static IMediaEvent    *pME = NULL;


   JIF(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,
                         IID_IGraphBuilder, (void **)&pGB));

    // Get interfaces to control playback & screensize
    JIF(pGB->QueryInterface(IID_IMediaControl,  (void **)&pMC));
    JIF(pGB->QueryInterface(IID_IVideoWindow,   (void **)&pVW));

    // Get interface to allow the app to wait for completion of playback
    JIF(pGB->QueryInterface(IID_IMediaEventEx,  (void **)&pME));

    pGB->RenderFile(wFileName, NULL);

    pMC->Pause();
    pMC->Run();

    g_bContinue = TRUE;

    // Enter a loop of checking for events and sampling keyboard i6nput
    while (g_bContinue)
    {
        MSG msg;
        long lEventCode, lParam1, lParam2;

        // Reset sleep flag
        bSleep = TRUE;

        // Has there been a media event?  Look for end of stream condition.
        if(E_ABORT != pME->GetEvent(&lEventCode, (LONG_PTR *) &lParam1,
                                    (LONG_PTR *) &lParam2, 0))
        {
            // Is this the end of the movie?
            if (lEventCode == EC_COMPLETE)
            {
               
                g_bContinue = FALSE;
                bSleep = FALSE;            
            }
            pME->FreeEventParams(lEventCode, lParam1, lParam2);
        }
    }


[COLOR="Red"]
from moderator:
Тегами надо пользоваться!!! [сode] ... текст программы... [/сode]
Первое и последнее предупреждение...

upd: Для служащих бронетанковых войск повторю: слово [COLOR="Black"]code[/COLOR] - пишется аглицкими буковками![/COLOR]
378
13 июня 2007 года
KurL
171 / / 01.08.2005
можно например ещё один интерфейс использовать

 
Код:
IMediaSeeking *pMS = NULL;

pMS->SetPositions(&pos, AM_SEEKING_AbsolutePositioning ,
                                   NULL, AM_SEEKING_NoPositioning);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог