我想开发一个媒体播放器/录像机。
主要目标平台是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位计算机并尝试运行它时,它再次失败。
在64位机器上有QT声子的已知问题吗?我还听说过VLC声子后端。这可能是解决方案吗? QT声子是否足够成熟,可以在其上开发商业应用程序?或者直接访问directshow是否更明智?
由于
答案 0 :(得分:2)
Directshow只是一个编程框架或API,它不能保证您能够在每台计算机上播放所有可能的视频格式,因为它依赖于系统上安装的codecs解压缩音频/视频流。一个特定格式的编解码器可能在一个系统中可用,而在另一个系统中则不可用。最重要的是,64位架构增加了更多的复杂性,因为以64位模式构建的编解码器不能用于32位应用程序,反之亦然。您在32位Phonon播放器上遇到的问题很可能是由于缺少或“不兼容32位”编解码器造成的。
另一方面,VLC是一个独立的应用程序,它不依赖于DirectShow或系统上安装的任何编解码器,因此使用它而不是DirectShow可能是个好主意,但是你需要阅读{{3}并决定你是否仍然可以将它用于你的目的。