Рендеринг видео в приложении SDL2

В какой-то момент я искал способ воспроизведения видео в своем приложении, я думал о том, как включить их в текстуру или просто визуализировать их, но я буквально в тупике, есть предложения? Я не в состоянии выбирать, но я был бы очень признателен за примеры кодов.


person kdyz    schedule 12.08.2014    source источник


Ответы (1)


Вы можете сделать это с помощью OpenGL, например: проигрывать файлы AVI

Я бы включил источник ссылки, но, поскольку это полноценный учебник, это было бы слишком долго.

Другой подход

Другой вариант - просто запустить медиаплеер. У большинства игроков есть стартовые параметры, которые вы можете использовать.

Например:

#include <windows.h>
int main()
{
    HINSTANCE hRet = ShellExecuteA(
                HWND_DESKTOP,                               // Parent
                "open",                                     // Operation
                "C:\\yourMovieDirectory\\yourMovie.avi",    // Path to file
                NULL,                                       // Parameters
                NULL,                                       // Default dir.
                SW_SHOW);                                   // Opening option

    if( (LONG)hRet <= 32 )
    {
        MessageBox( HWND_DESKTOP , "Error detected while attempting to start the movie!") , "Error" , MB_OK );

    }

    return 0;
}

Вам нужен shell32.lib для функция ShellExecute()

HINSTANCE — это дескриптор экземпляра. Типы Windows C++

person deW1    schedule 12.08.2014
comment
Я действительно оценил это, особенно пример кода... дело в том, что я не могу его реализовать, не могли бы вы указать мне происхождение этого кода? или я пропустил некоторые предварительные условия? Я попытался ввести HINSTANCE в свой проект, и он не распознал его. Извините, но это моя первая встреча с этим. - person kdyz; 13.08.2014
comment
обновлено. Извините, я предполагал, что вы используете окна. Если это не так, дайте мне знать. - person deW1; 13.08.2014
comment
На самом деле я использую Windows 8 ... Неважно, я не знал, что вы должны включать windows.h. Позвольте мне попробовать это снова. - person kdyz; 14.08.2014
comment
Спасибо за объяснение, наконец-то понял. - person kdyz; 14.08.2014