c++ - 使用 Phonon 播放 mp4 视频

标签 c++ qt mp4 phonon

我正在尝试在 Windows 上使用 QT 和 Phonon 编写一个非常简单的视频播放器。我的后端是 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 文件时,没有任何反应。 videoPlayer 保持黑色。

我在网上搜索并看到有一个 BackendCapabilities::availableMimeTypes,所以我尝试了它以确保我的后端与 mp4 兼容 - 它在列表中。以下是可用的 MIME 类型列表:

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 audio/mpeg audio/mpegurl audio/mpg audio/vnd.dlna.adts audio/wav audio/x-aiff audio/x-mid audio/x-midi audio/x-mp3 audio/x-mpeg audio/x-mpegurl audio/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 video/x-ms-wmv video/x-ms-wmx video/x-ms-wvx video/x-msvideo vnd.ms.wmhtml

我还将 mediaObjectstateChanged 信号连接到一个插槽,当我尝试读取我的视频时,出现一个错误,指出文件格式是不支持。

我怎样才能让 Phonon 支持它?我是否应该安装编解码器包,即使 mp4 在我的列表中?

最佳答案

我最近遇到了类似的问题,在尝试了一些编解码器包之后,这是一个有效的。

K Lite Mega Codec Pack

如果你进入高级安装,你可以取消选中“工具”、“程序”(Windows Media Player Classic)、“Shell Extension”,然后取消选中它附带的免费浏览器工具栏,你最终会得到只是编解码器。

之后,我可以使用 QtSDK 的 Demos 文件夹中包含的 qmediaplayer 示例程序在 Windows 上播放任何内容。

关于c++ - 使用 Phonon 播放 mp4 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10596038/

相关文章:

c++ - Qt,无法将不完整类型 'A *' 的参数转换为 'const QObject *'

c++ - openGL 中的相似对象是否需要多个顶点缓冲区?

c++ - QSystemTrayIcon 未显示在 Ubuntu 14.04 的通知区域中

C++/Qt 多行字符串;还有,多个查询

mp4 - 检测h264流中的I帧(碎片mp4)

java - 如何在java GUI中嵌入10秒的MP4视频?

iphone - MPMoviePlayerViewController 无法播放 mp4 文件

c++ - qt/c++ 动态命名变量

c++ - 嵌套类声明 : template vs non-template outer class

c++ - boost 记录器,多个日志文件和记录器