本次主要遇到两个问题
首先是文件名需要使用TEXT()函数中或者在文件路径的双引号""前加大写的L
其次是mcisendsting函数所播放的mp3格式音乐需要删除封面
亲测以下代码在vs2013 pro中均可成功运行
c代码:
#include<windows.h>
#include<Mmsystem.h>
#pragma comment(lib,"winmm.lib")
int main(int argc, char* argv[])
{
mciSendString(TEXT("open D:\\甩葱歌.mp3 alias bkmusic"), NULL, 0, NULL);
mciSendString(TEXT("play bkmusic"), NULL, 0, NULL);
//mciSendString(L"open D:\\千本樱.mp3 alias bkmusic", NULL, 0, NULL);
//mciSendString(L"play bkmusic", NULL, 0, NULL);
//PlaySound(TEXT("D:\\桃源恋歌.wav"), NULL, SND_FILENAME | SND_ASYNC);
//PlaySound(L"D:\\桃源恋歌.wav", NULL, SND_FILENAME | SND_ASYNC);
getchar();
return 0;
}
c++代码:
#include<windows.h>
#include<Mmsystem.h>
#include<iostream>
#pragma comment(lib,"winmm.lib")
using namespace std;
int main(int argc, char* argv[])
{
mciSendString(TEXT("open D:\\千本樱.mp3 alias bkmusic"), NULL, 0, NULL);
mciSendString(TEXT("play bkmusic"), NULL, 0, NULL);
//mciSendString(L"open D:\\badapple.wma alias bkmusic", NULL, 0, NULL);
//mciSendString(L"play bkmusic", NULL, 0, NULL);
//PlaySound(TEXT("D:\\桃源恋歌.wav"), NULL, SND_FILENAME | SND_ASYNC);
//PlaySound(L"D:\\桃源恋歌.wav", NULL, SND_FILENAME | SND_ASYNC);
getchar();
return 0;
}
经过测试mp3格式,wav格式,wma格式的音乐都可以用mcisendstring函数打开并播放,
而PlaySound函数只能播放wav格式的音乐,但两者似乎都不能播放flac格式的音乐。
mp3封面去除软件:官网:https://www.mp3tag.de
一开始安装是英文,但安装完可点击Tools-Options-Language然后选择简体中文,将音乐文件拖入右边的大窗口,然后选中音乐文件,右击选择删除封面,最后选择文件菜单中的保存标签即可。