mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3。
今天我写了个小游戏,想加个BGM,从网易云下载了个mp3,然后打出了下面代码,然后我就懵了,喵喵喵?声音呢?
#include<Windows.h>
#include<mmsystem.h>
#pragma comment(lib,"WINMM.LIB")
int main(int argc, char* argv[])
{
mciSendString(TEXT("open C:\\Users\\wuden\\Desktop\\musiccs.mp3 alias mysong"), NULL, 0, NULL);
mciSendString(TEXT("play MySong"), NULL, 0, NULL);
Sleep(50000);
return 0;
}
我调试了一下,发现mciSendString返回值是277,正常情况返回值是一个0,为啥错了?路径没有歧义(转义字符),也没有空格,甚至连中文都没有,这么标准的路径也能错?
突然,发现可能是封面有问题,我看了看我的5.27m大小带高清封面的mp3文件,马上给它去了封面(详见 该博客底部)我又换了个2m左右的mp3文件,但是 完 全 没 用 !
这时,我在别人的博客发现一件非常恐怖的事情——网易云的mp3格式有点问题,我直接QQ音乐,下载mp3,一运行,我直接哭泣,响了,它响了,我此生再无悲喜。(网易云你在做什么啊?!!)