C++ 使用mciSendString播放mp3文件(MCIERR\u无法加载\u驱动程序)

C++ 使用mciSendString播放mp3文件(MCIERR\u无法加载\u驱动程序),c++,audio,mp3,mcisendstring,C++,Audio,Mp3,Mcisendstring,我正在尝试编写一些可以播放.mp3文件的代码。我想我可以使用mciSendString调用,但是我遇到了一个奇怪的错误 所以,当我有这个代码时: int rc=mciSendString(L"open songname.mp3 alias song1", NULL, 0, 0); rc返回的数字为266,而GetErrorString返回的错误字符串为: “加载指定的设备驱动程序时出现未知问题。” 错误266是MCIERR\u无法加载\u驱动程序 我也尝试过: int r

我正在尝试编写一些可以播放.mp3文件的代码。我想我可以使用mciSendString调用,但是我遇到了一个奇怪的错误

所以,当我有这个代码时:

int rc=mciSendString(L"open songname.mp3 alias song1", NULL, 0, 0); 
rc
返回的数字为266,而
GetErrorString
返回的错误字符串为:

“加载指定的设备驱动程序时出现未知问题。”

错误266是MCIERR\u无法加载\u驱动程序

我也尝试过:

int rc=mciSendString(L"open songname.mp3 type mpegvideo alias song1", NULL, 0, 0); 
并收到了相同的错误

我原以为可能是mp3文件,但我尝试了几个不同的文件,结果总是出现同样的错误


<>我的代码是C++的,在Windows 7上运行。我的代码丢失了什么吗?

试着用一对额外的引号(一定要用反斜杠转义)环绕
songname.mp3

看起来我没有用于MCI的mp3编解码器。(事实上,在对问题的评论中,@LightnessRacesinOrbit回答了这个问题。)

好吧,您是否安装了MCI可以使用的MP3编解码器?@LightnessRacesinOrbit我假设预装了Windows。Windows Media Player可以播放我尝试播放的mp3文件。这是一种有效的检查方法,还是我应该执行其他操作来检查它是否已安装。Windows Media File不使用MCI播放IIRC。假设任何事情——特别是关于不起作用的事情——似乎是一个奇怪的选择。试着给出一个完整的、绝对的路径。@LightnessRacesinOrbit我尝试了完整的、绝对的路径,但似乎没有帮助。但是,我用一个wav文件测试了相同的调用,并且成功了。似乎您对未安装mp3编解码器的看法是正确的。谢谢你知道我可以安装mci mp3编解码器吗?好主意,但是当我用引号更改呼叫时,我仍然得到相同的266错误。遗憾的是,他没有解决这个问题。