对于音乐播放,有很多现成的库函数供我们使用,对于初级的音乐播放和控制,使用windows为我们提供的MCI系列的接口就可以很容易实现
MCI英文单词Media Control Interface的缩写,即媒体控制接口,可以实现音视频文件的播放和常用控制,对于完成一个mp3音乐播放器而言非常简便,对于有C语言基础的人来说都可以轻易实现!
MCI系列的接口需要引用的前提是需要包含对应的头文件和库文件,需要包含windows.h和WinMM.Lib的静态库,即代码如下:
#include<windows.h> #pragma comment(lib,"WinMM.Lib")
MCI中最最常用的函数就是mciSendString函数,几乎所有的音乐播放、暂停、停止以及常见的控制操作都可以通过这个函数实现,它的原型如下:
MCIERROR mciSendString( LPCTSTR lpszCommand, LPTSTR lpszReturnString, UINT cchReturn, HANDLE hwndCallback );
它的返回值为执行成功与否的错误值,正常执行成功则返回0,否则返回错误代码
而它的四个参数作用分别为:
第一个参数,是一个字符串的指针类型,表示要执行的命令
第二个参数,是一个返回回来的的缓冲区,为字符串指针类型
第三个参数,是这个缓冲区(即第二个参数)的长度大小
第四个参数,为回调窗口的句柄,本教程为控制台应用基本不需要,所以传NULL
为了方便大家理解,首先举一个简单例子(第二、第三、第四个参数都为空情况下),如打开一个设备或音乐。
可以这样写
mciSendString("open 0.mp3",NULL,0,NULL);
即可打开这个0.mp3的音乐(注意这里是相对路劲,因此0.mp3要与本程序位于同级目录下),但注意,open命令仅仅是打开,但并未播放!因此还听不到声音!此为第一步,
open文件之后,就可以对文件进行其他的操作了,包括播放、暂停、停止、继续、获取音乐文件信息等等操作,如播放此音乐可以写:
mciSendString("play 0.mp3",NULL,0,NULL);
如果要关闭这个0.mp3文件,停止占用释放该文件,可以这样使用:
mciSendString("close 0.mp3",NULL,0,NULL);
因此完整的可以播放音乐的代码如下:
#include#include#pragma comment(lib,"WinMM.Lib") /////*****************dotcpp.com************/////// int main() { int n; mciSendString("open 0.mp3",NULL,0,NULL);//打开音乐文件 mciSendString("play 0.mp3",NULL,0,NULL);//播放音乐文件 getchar(); mciSendString("close 0.mp3",NULL,0,NULL);//关闭音乐文件 return 0; }
需要注意的是,播放文件之后,程序不能立即调用close或者程序直接结束退出,都会听不到音乐,需要加一个getchar或者Sleep之类的代码让程序等待,由于播放音乐是非阻塞进行,因此不会影响你听音乐!
大家可以自行尝试!
连载中...
0.0分
6 人评分
C语言训练-最大数问题 (C语言代码)浏览:649 |
C语言训练-大、小写问题 (C语言代码)浏览:794 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:541 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:864 |
【矩阵】 (C++代码)浏览:1000 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:388 |
1048题解(读入回车问题)浏览:628 |
C二级辅导-求偶数和 (C语言代码)浏览:707 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:636 |
判定字符位置 (C语言代码)浏览:849 |