-,-暑假学校培训做个小游戏,但是用playsound只能播放一个音乐,于是四处求解,现在放假了闲下来写下来:
一是为了方便广大同样的苦逼者解决问题。二是为了以后忘了直接回来看看
(这才是主要原因
)
——————————————————华丽的分割线————————————————————————
首先我们需要头文件
#include<windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
上面的winmm.lib,也可以通过在VS的Project->Settings->Link->Object/libray module中加入库 Winmm.lib。
首先需要声明
MCI_OPEN_PARMS musicopen;
MCI_PLAY_PARMS musicplay;
UINT musicpalyer1;//第一个设备,用来播放音乐
UINT musicpalyer2;//第二个设备,用来播放另一首音乐
musicopen.lpstrDeviceType = TEXT("mpegvideo");
下面就简单了)
mciSendCommand(devciveID1, MCI_CLOSE, 0, NULL);//这是该播放设备,这样才可以重置更换音乐(原理不知道,经验之谈)(不用来更换或重播的不用加)
musicopen.lpstrElementName = TEXT("音乐文件位置");//加TEXT是不知道为嘛,我打的路径不行要TEXT转换,也许你不用(希望大神能解答下)
mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD)&mciOpen);
musicpalyer1 = musicopen.wDeviceID;
mciSendCommand(musicpalyer1, MCI_SEEK, MCI_SEEK_TO_START, NULL);//让音乐重头开始
mciSendCommand(musicpalyer1, MCI_PLAY, MCI_DGV_PLAY_REPEAT, (DWORD)&mciPlay);//播放音乐(MCI_DGV_PLAY_REPEAT是为了循环播放,不循环播放可以不加)
这样一个播放器就完成了!剩下播放器的同样的道理,而且播放设备的数量可以自主增加哦!
有空会吧MCI的坑填了0,0 ————不懂原理,但能试出来!!
方便复制、、、、、、、
</pre><pre name="code" class="cpp">#include<windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
MCI_OPEN_PARMS musicopen;//放在函数里
MCI_PLAY_PARMS musicplay;
UINT musicpalyer1;//第一个设备,用来播放音乐
UINT musicpalyer2;//第二个设备,用来播放另一首音乐
musicopen.lpstrDeviceType = TEXT("mpegvideo");
mciSendCommand(devciveID1, MCI_CLOSE, 0, NULL);//这是该播放设备,这样才可以重置更换音乐(原理不知道,经验之谈)(不用来更换或重播的不用加)
musicopen.lpstrElementName = TEXT("音乐文件位置");//加TEXT是不知道为嘛,我打的路径不行要TEXT转换,也许你不用(希望大神能解答下)
mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD)&mciOpen);
musicpalyer1 = musicopen.wDeviceID;
mciSendCommand(musicpalyer1, MCI_SEEK, MCI_SEEK_TO_START, NULL);//让音乐重头开始
mciSendCommand(musicpalyer1, MCI_PLAY, MCI_DGV_PLAY_REPEAT, (DWORD)&mciPlay);//播放音乐(MCI_DGV_PLAY_REPEAT是为了循环播放,不循环播放可以不加)<pre name="code" class="cpp"><pre name="code" class="html">
本文介绍了如何在C语言中实现单线程播放多首音乐。由于标准库playsound只能播放一个音频,作者通过探索找到了解决方法。文章分享了实现多音频播放所需的头文件和关键代码,指出该方法同样适用于创建播放设备数量可扩展的播放器。虽然作者对MCI工作原理不熟悉,但已成功实现了功能。
7390

被折叠的 条评论
为什么被折叠?



