【问题标题】:Media player/recorder (phonon)媒体播放器/录音机(声子)
【发布时间】:2023-03-31 03:20:01
【问题描述】:

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

主要目标平台是 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 更明智?

谢谢

【问题讨论】:

  • 如果您在 Windows Media Player 中打开要播放的文件,它们在 Phonon 播放器不工作的系统上是否可以正常播放?

标签: qt video directx directshow phonon


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多