【发布时间】:2012-10-26 08:52:27
【问题描述】:
我正在尝试编写一些可以播放 .mp3 文件的代码。我以为我可以使用 mciSendString 调用,但我遇到了一个奇怪的错误。
所以,当我有这个代码时:
int rc=mciSendString(L"open songname.mp3 alias song1", NULL, 0, 0);
rc返回数字266,GetErrorString返回的错误字符串为:
“加载指定设备驱动程序时出现未知问题。”
错误 266 是 MCIERR_CANNOT_LOAD_DRIVER
我也试过了:
int rc=mciSendString(L"open songname.mp3 type mpegvideo alias song1", NULL, 0, 0);
并收到同样的错误。
我以为可能是 mp3 文件,但我尝试了几个不同的文件并不断收到相同的错误。
我的代码是 C++ 并在 Windows 7 上运行。我的代码是否缺少某些内容?
【问题讨论】:
-
那么,您是否安装了 MCI 可以使用的 MP3 编解码器?
-
@LightnessRacesinOrbit 我假设 Windows 预装了它。 Windows Media Player 可以播放我尝试播放的 mp3 文件。这是一种有效的检查方式,还是我应该做其他事情来检查它是否已安装。
-
Windows Media 文件不使用 MCI 播放 IIRC。 假设任何事情——尤其是关于不工作的事情——似乎是一个奇怪的选择。
-
尝试给出完整的绝对路径。
-
@LightnessRacesinOrbit 我尝试了完整的绝对路径,但这似乎没有帮助。但是,我用 wav 文件测试了相同的调用,并且它有效。看来您对未安装 mp3 编解码器是正确的。谢谢。你知道我可以安装的 mci mp3 编解码器吗?
标签: c++ audio mp3 mcisendstring