有个很重要的
打开project options
选择parameters,然后在linker中输入-lwinmm。
注意千万不要点下面的Add library or object来加入。
上面的白框里是可以直接输入的,输入-lwinmm。
这个就表示链接上,链接完以后编译代码音乐就可以直接放了。
mciSendString("close mymusic", NULL, 0, NULL);//关闭之前的音乐
mciSendString("open music\\m.mp3 alias mymusic", NULL, 0, NULL); // 打开音乐
mciSendString("play mymusic repeat", NULL, 0, NULL); //循环播放
1.播放:
mciSendString “play movie”, 0&, 0, 0
mciSendString “play movie fullscreen”, 0&, 0, 0 '全屏播放
2.暂停:
mciSendString “pause movie”, 0&, 0, 0
3.继续:
mciSendString “resume movie”, 0&, 0, 0
4.停止:
mciSendString “stop movie”, 0&, 0, 0
5.关闭:
mciSendString “close movie”, 0&, 0, 0
6.前进到下一个位置:
mciSendString “step movie”, 0&, 0, 0
7.后退到上一个位置:
mciSendString “step movie reverse”, 0&, 0, 0
8.前进或后退 N 個位置(其中 N<0 即表示后退)
mciSendString "step movie by " & str(N), 0&, 0, 0
9.获取当前播放位置:
Dim ST As String64
mciSendString “status movie position”, st, len(st), 0
10. 获取媒体的总长度:
mciSendString “status movie length”, st, len(st), 0
l=val(st) 'L就是所播放文件的长度
11.获取播放信息:
Dim ST As String64
mciSendString “status movie mode”, ST, Len(ST), 0
If Left(ST, 7) = “stopped” Then (处理代码) '播放完毕
12.循环播放:
mciSendString “play movie repeat”, 0&, 0, 0
方法一:
mciSendString("open music\\m.mp3 alias mymusic", NULL, 0, NULL); // 打开音乐
mciSendString("setaudio mymusic volume to 600",NULL,0,NULL); //设置音量大小
mciSendString("play mymusic", NULL, 0, NULL); //开始音乐
mciSendString("play mymusic repeat", NULL, 0, NULL); //循环播放
不过这个对某些mp3却放不出来,最后使用了方法一,把播不出来的mp3转成wav,然后再把wav转成mp3,就可以支持mciSendString了。
wav格式很大,而且无法压缩,所以只能通过转成别的格式,减小占用空间。
MP3,WAV之间的互转有个很方便的在线网站,给出链接:https://cloudconvert.com
经过这个转化原本20多MB的wav变成了3MB大小的mp3,非常地有效。
方法二:
PlaySound(NULL,NULL,SND_FILENAME); //暂停当前音乐,其实就是放空音乐
sndPlaySound("music\\m.wav", SND_ASYNC | SND_NODEFAULT|SND_LOOP); //播放
注意这个只能放wav,SND_LOOP是循环播放的意思(可以在网上直接用在线的mp3转wav,不过wav的格式转完都会比较大)
注意:音乐路径在我这里是music//m.wav,大家可以按照自己电脑中歌曲的路径来选择,可以是相对路径也可以是绝对路径,我这里是music//m.wav,相当于需要在c++源代码文件所在的文件夹中创建一个music文件夹,在文件夹中放上我们需要的音乐m.wav,即可调用。