3

我想开发一个媒体播放器/录像机。

主要目标平台是 Windows,对其他操作系统的支持会很好,但这不是一个高优先级。它应该能够播放 wav、mp3、avi 等格式。它还应该能够录制音频(麦克风)和视频(网络摄像头或采集卡)。

由于我对 QT 和 C++ 有一些经验,因此我研究了带有 DS 后端的 QT (4.7.2) 声子。但不幸的是,即使使用 QT 演示附带的 MediaPlayer 示例,我也无法播放简单的 AVI。我只能听到声音,但没有看到视频。

开发人员机器是 64 位 Vista。我还在另一个 64 位 Vista 上尝试过,但没有任何运气。在 32 位 Win7 (QT MinGW) 上,它终于可以工作了。但是,当我将该 MediaPlayer 可执行文件及其 dll 复制到 64 位机器并尝试运行它时,它又失败了。

QT 声子在 64 位机器上是否存在已知问题?我还听说过 VLC 声子后端。那可以解决吗?QT 声子是否足够成熟,可以在其上开发商业应用程序?还是直接访问 directshow 可能更明智?

谢谢

4

1 回答 1

2

Directshow 只是一个编程框架或 API,它不能保证您能够在每台计算机上播放所有可能的视频格式,因为它依赖于系统上安装的编解码器来解压缩音频/视频流。一种特定格式的编解码器可能在一个系统中可用,而在另一个系统中不可用。最重要的是,64 位架构增加了更多的复杂性,因为在 64 位模式下构建的编解码器不能在 32 位应用程序中使用,反之亦然。您在 32 位 Phonon 播放器上遇到的问题很可能是由缺少或“不兼容 32 位”编解码器引起的。
另一方面,VLC 是一个自包含的应用程序,它不依赖于 DirectShow 或系统上安装的任何编解码器,因此使用它代替 DirectShow 可能是一个好主意,但是您需要阅读VLC 法律条款和决定您是否仍然可以将其用于您的目的。

于 2011-05-08T15:09:13.650 回答