Я пытаюсь написать очень простой видеоплеер с использованием QT и Phonon в Windows. Мой бэкенд — phonon_ds94. Прежде всего, вот код, когда я нажимаю «Играть»:
if (!this->_files.empty()) {
QString file = this->_files.front();
this->_files.pop();
Phonon::MediaSource _src(file);
this->ui.videoPlayer->play(_src);
}
(Здесь файл — это std::queue файлов для чтения)
Если я хочу воспроизвести .avi или .wmv, все работает нормально. Мое видео воспроизводится, оно идеально.
Но когда я хочу воспроизвести файл .mp4, ничего не происходит. Видеоплеер остается черным.
Я искал в Интернете и вижу, что есть BackendCapabilities:: availableMimeTypes, поэтому я попробовал, чтобы убедиться, что мой бэкэнд совместим с mp4 - он есть в списке. Вот список доступных типов пантомимы:
application/vnd.ms-wpl application/x-mplayer2 application/x-ms-wmd application/x-ms-wmz audio/3gpp audio/3gpp2 audio/aiff audio/basic audio/mid audio/midi audio/mp3 audio/mp4 аудио/mpeg аудио/mpegurl аудио/mpg аудио/vnd.dlna.adts аудио/wav аудио/x-aiff аудио/x-mid аудио/x-midi аудио/x-mp3 аудио/x-mpeg аудио/x-mpegurl аудио /x-mpg audio/x-ms-wax audio/x-ms-wma audio/x-wav midi/mid unknown video/3gpp video/3gpp2 video/avi video/mp4 video/mpeg video /mpg video/msvideo video/quicktime video/vnd.dlna.mpeg-tts video/x-mpeg video/x-mpeg2a video/x-ms-asf video/x-ms-asf-plugin video/x-ms-wm видео/x-ms-wmv видео/x-ms-wmx видео/x-ms-wvx видео/x-msvideo vnd.ms.wmhtml
Я также подключил сигнал stateChanged
mediaObject
к слоту, и когда я пытаюсь прочитать свое видео, возникает ошибка, говорящая о том, что формат файла не поддерживается.
Как я могу получить Phonon для его поддержки? Должен ли я установить пакет кодеков, даже если mp4 есть в моем списке?