Dotcpp  >  编程教程  >  MCI基础  >  如何用MCI播放音乐

如何用MCI播放音乐

点击打开在线编译器,边学边练

在引入头文件和必要的库之后,我们就可以对音乐进行播放操作了

MCIERROR mciSendString(
LPCTSTR lpszCommand,            //第一个参数为一串控制字符串
LPTSTR  lpszReturnString,        //系统返回的信息
UINT    cchReturn,                //指明返回信息的最大长度
HANDLE  hwndCallback                //若对MCI装置设定了"notify"标志则需要在第四个参数填上返回窗口句柄。
);

对音乐播放的操作在于第一个参数,目前mci支持的操作有打开、关闭、播放、暂停等操作。如播放音乐就是“play name.mp3”命令,关闭则是“close  name.mp3”命令,其中name.mp3表示要操作的音乐文件。name是名字,后缀目前支持的不多,仅有mp3、wav、mpeg、avi等少数音乐格式。


对一个音乐文件的操作流程如同C语言操作文件一般,首先要先打开(open)音乐文件,最后要停止(stop)、关闭(close)音乐文件。

下面来看一个简单的播放例子:

#include <windows.h>
#pragma comment (lib,"winmm.lib")
int main()
{
	mciSendString("open dotcpp.mp3",NULL,0,NULL);
	mciSendString("play dotcpp.mp3",NULL,0,NULL);
	getchar();
	mciSendString("stop dotcpp.mp3",NULL,0,NULL);
	mciSendString("close dotcpp.mp3",NULL,0,NULL);
	return 0;
}

代码调用了三次mciSendString函数,注意第一个参数,分别是open、play、stop、closes四个命令,对应打开、播放、关闭

需要注意是:

  1. 要先打开(open)才能播放,打开这一步并非是播放!

  2. 最后用完,要停止(stop)和关闭(close)文件,来释放资源。

  3. 音乐文件可以绝对路径也可以相对路径,若为相对路径,注意文件位置。

  4. 由于代码顺序执行后会听不到音乐,所以在关闭(close)之前执行一个getchar让音乐播放后一直播放,直到按任意键结束。由于getchar是阻塞机制,因此程序在此等待从而音乐一直播放。


大家可以准备一个mp3文件,进行尝试。


本文固定URL:https://www.dotcpp.com/course/1210

Dotcpp在线编译      (登录可减少运行等待时间)