网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月12日漏签0天
c吧 关注:133,366贴子:393,960
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回c吧
>0< 加载中...

两行C语言代码播放音乐,so easy!

  • 只看楼主
  • 收藏

  • 回复
  • wcy1111211
  • 一年级
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
两行C语言代码播放音乐,so easy!
函数介绍
为了实现用C语言播放音乐,我们需要用到windows的一个API,mciSendString。
函数原型为:
MCIERROR mciSendStringA( LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
1,返回值:MCIERROR即DWORD类型,而DWORD类型就是unsigned int,执行成功返回0,出错返回非0值
2,lpstrCommand,指向以null结尾的命令字符串:”命令 设备[ 参数]”
3,lpstrReturnString,指向接收返回信息的缓冲区,为NULL时不返回信息
4,uReturnLength,上述缓冲区的大小
5,hwndCallback,在命令串中含notify时,它指定一个回调窗口的句柄,一般为NULL
使用方法
具体的播放代码是这样子滴:
mciSendString("open ThatGirl.mp3 alias a", NULL, 0, NULL);//打开音乐mciSendString("play a", NULL, 0, NULL);//播放音乐
open指令打开需要播放的音乐,alias后面制定了前面文件路径的别名,以后想要操作这个文件直接使用这个别名就行了,后面的三个参数平时,就记着写作NULL,0,NULL即可。
第二条语句play指令后面接上面定义的别名,repeat表示歌曲循环播放。如果想要在音乐播放时停止播放,有以下代码
mciSendString("stop a", NULL, 0, NULL); //停止播放音乐 mciSendString("close a", NULL, 0, NULL); //关闭音乐
总而言之:play a开始播放,stop a停止播放,close a关闭文件,如果需要同时播放多个音乐的话应该为每个音乐设置不同的别名,这样就可以了
注意:还有一个函数PlaySound可以用来播放音乐,但是不支持mp3和wma
返回值错误检查
有时候播放音乐会没有声音,这时候就需要对返回值进行检查了,在返回错误码的同时,还会有对应的错误信息,那么怎么查看信息呢?
这里需要用到另外一个函数mciGetErrorString。
函数原型:
BOOL mciGetErrorStringA( MCIERROR mcierr, LPSTR pszText, UINT cchText);
1,返回值,没有错误返回非零值,错误返回0
2,mcierr,mciSendString返回的错误代码。
3,pszText,指向缓冲区的指针,该缓冲区接收错误描述,接受之后输出即可看到信息。
4,cchText,pszText缓冲区的长度(以字符为单位)
具体代码如下:
char buf[100] = "";char buf1[100] = "";DWORD m1= mciSendString("open ThatGirl.mp3 alias a", NULL, 0, NULL);int temp=mciGetErrorString(m1, buf, 100);DWORD m2 = mciSendString("play a", NULL, 0, NULL);mciGetErrorString(m2, buf, 100);printf("m1-%u,m2-%u temp:%d\n",m1,m2,temp);printf("%s\n%s\n", buf,buf1);
运行结果如下:
我这里是能正常播放的,所以一切OK!


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回c吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示