嵌入式学习小组
直播中

李龙

7年用户 234经验值
私信 关注

如何实现用C语言播放音乐

实现用C语言播放音乐的方法

回帖(5)

孙琪

2020-12-28 16:24:43
  函数原型为:
  MCIERROR mciSendStringA(
  LPCSTR lpstrCommand,
  LPSTR lpstrReturnString,
  UINT uReturnLength,
  HWNDhwndCallback
  );
  1,返回值:MCIERROR即DWORD类型,而DWORD类型就是unsigned int,执行成功返回0,出错返回非0值
  2,lpstrCommand,指向以null结尾的命令字符串:”命令 设备[ 参数]”
  3,lpstrReturnString,指向接收返回信息的缓冲区,为NULL时不返回信息
  4,uReturnLength,上述缓冲区的大小
  5,hwndCallback,在命令串中含notify时,它指定一个回调窗口的句柄,一般为NULL
举报

黄登高

2020-12-28 16:24:53
  使用方法
  具体的播放代码是这样子滴:
  mciSendString(“stop a”, NULL, 0, NULL); //停止播放音乐
  mciSendString(“close 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
举报

h1654155275.5950

2020-12-28 16:25:03
  返回值错误检查
  有时候播放音乐会没有声音,这时候就需要对返回值进行检查了,在返回错误码的同时,还会有对应的错误信息,那么怎么查看信息呢?
  这里需要用到另外一个函数mciGetErrorString。
  函数原型:
  BOOL mciGetErrorStringA(
  MCIERROR mcierr,
  LPSTR pszText,
  UINT cchText
  );
  1,返回值,没有错误返回非零值,错误返回0
  2,mcierr,mciSendString返回的错误代码。
  3,pszText,指向缓冲区的指针,该缓冲区接收错误描述,接受之后输出即可看到信息。
  4,cchText,pszText缓冲区的长度(以字符为单位)
举报

阮浙临

2020-12-28 16:25:13
  具体代码如下:
  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:%dn”,m1,m2,temp);
  printf(“%sn%sn”, buf,buf1);
举报

更多回帖

发帖
×
20
完善资料,
赚取积分