【问题标题】:Why mciSendString cannot open my mp3 file?为什么 mciSendString 无法打开我的 mp3 文件?
【发布时间】:2022-08-16 10:32:51
【问题描述】:

我正在尝试在 C++ Visual Studio 17.3.0 中播放 MP3 音频,但不断收到 MCIERROR 275 和 263。

我的.mp3 文件与我的.cpp 文件位于同一目录中。

我的代码是这样的:

MCIERROR me = mciSendString(TEXT(\"open \"\"Music.mp3\"\" type mpegvideo alias mp3\"), NULL, 0, NULL);
while(true){
    me = mciSendString(TEXT(\"play mp3\"), NULL, 0, NULL);
}

尝试了不同的.mp3 文件、不同的目录和不同的播放声音的功能(PlaySound()),这给了我非常相似的结果/错误。

我的问题可能是什么原因?

  • 可执行文件工作目录不太可能与您放置的 .cpp 文件相同。第一次尝试完整路径。
  • 刚试过,第一个错误是不同的:259,MCIERR_UNRECOGNIZED_KEYWORD
  • 路径中有空格吗?
  • 实际上是的,我应该如何处理路径上的空格?
  • 将整个路径括在 \" 双引号中。请注意,您需要在字符串文字中转义这些:\"\\\"c\\\\dir xy\\\\file.mp3\\\"\"

标签: c++ visual-studio mp3 mci


【解决方案1】:

首先是打开:

mciSendString("open Summer.mp3 alias song",NULL,0,NULL)

打开后添加文件的相对路径或绝对路径(取决于你播放的音乐和你的程序的相对位置)

我们可以把alias理解为把你的音乐名替换成alias后面的名字,方便我们后续操作,只需要输入你的备用名(如果歌曲名太长就省事了)

最后三个参数可以像我这样写,因为我们只是简单的播放音乐,所以不需要赘述。

接下来就是玩了:

mciSendString("play song repeat",NULL,0,NULL);

播放+音乐名称(或别名后的替代名称)+[播放选择]

播放选项包括重复、等待。

repeat 是重复歌曲的意思。

等待意味着该函数在歌曲播放完毕之前不会返回。

【讨论】:

    猜你喜欢
    • 2016-04-12
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2011-11-13
    相关资源
    最近更新 更多