不用编译


私信TA

用户名:God

访问量:3754

签 名:

想起那天夕阳下的奔跑,是我逝去的青春

等  级
排  名 17047
经  验 795
参赛次数 3
文章发表 2
年  龄 22
在职情况 学生
学  校 djtu
专  业

  自我简介:

给你介绍个对象! 啥类型的? 抽象类型的 尼玛,哪有对象!

TA的其他文章

对于音乐播放,有很多现成的库函数供我们使用,对于初级的音乐播放和控制,使用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 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

牛啊牛啊~
2022-06-10 23:04:58
厉害
2021-06-20 12:22:56
  • «
  • 1
  • »