mciSendString为啥有的MP3音乐播放不出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mciSendString为啥有的MP3音乐播放不出来相关的知识,希望对你有一定的参考价值。

GetShortPathName(szFile,str,sizeof(str));
//mciSendString函数在处理长文件名、中文文件名、空格等会有些问题,用此函数解决这类问题。
ListBox_InsertString(hwnd1,-1,str);
mciSendString(stop,"",0,NULL);
wsprintf(cmd,"play %s",str);
mciSendString(cmd,"",0,NULL);//播放音乐函数
wsprintf(stop,"close %s",str);
wsprintf(abc,"setaudio %s volume to %d",str,v);
mciSendString(abc,"",0,NULL); 用这段去播放音乐的时候,有的音乐可以播,有的就不行,不是文件名和路径问题,是怎么回事啊,照百度百科那样,第一句就说CStatic 没有定义,还有别人说的Dim 也是没有定义,怎么回事啊,我用的是VC6.0 难道我是用错了函数?做一个小播放器,是用什么函数的啊?

参考技术A 如:
TCHAR szBuffer[256] = 0;
TCHAR Buffer[256] = 0;
wsprintf(szBuffer,L"cg.mp3");
wsprintf(Buffer,L"open %s",szBuffer);
mciSendString(Buffer,NULL,0,NULL); //打开设备
wsprintf(Buffer,L"play %s repeat",szBuffer);
mciSendString(Buffer,NULL,0,NULL); //播放

将上面的改为:
TCHAR szBuffer[256] = 0;
TCHAR Buffer[256] = 0;
wsprintf(szBuffer,L"cg.mp3");
wsprintf(Buffer,L"open \"%s\"",szBuffer);
mciSendString(Buffer,NULL,0,NULL); //打开设备
wsprintf(Buffer,L"play \"%s\" repeat",szBuffer);
mciSendString(Buffer,NULL,0,NULL); //播放
参考技术B mciSendString函数,我在实验N次后,发现文件路径不能有空格,如:路径中的文件有“Program Files”这个文件夹包含了空格。这个路径将被视为无效路径而不予执行其他有关操作,同时在播放之前和退出程序之前插入一条关闭指令:mciSendString "close " & 音乐文件, vbNullString, 0, 0 (注:“音乐文件”为全局变量,音乐文件=文件路径+文件名),绝对有好处!

C语言中mciSendString用法

用mciSendString来播放音乐。
已经能打开MP3并播放。但是不知道要怎么暂停,终止播放。
mciSendString("pause movie",buf,sizeof(buf),NULL);没有用(或者说我不知道要怎么用)
要怎么弄?

假设有文件1.mp3,要实现播放则是mciSendString("play 1.mp3",NULL,0,NULL),要实现暂停是mciSendString("pause 1.mp3",NULL,0,NULL),要实现停止是mciSendString("close 1.mp3",NULL,0,NULL) 参考技术A 针对你的提问,你可设置一个CString类的一个变量(m_FileName),在Create()时候用它代替音乐文件名就行了… 参考技术B   mciSendString是用来播放多媒体文件的API指令,可以播放MPEG、AVI、WAV、MP3等等;
  该函数有四个参数:
  第一个参数:要发送的命令字符串。字符串结构是:[命令][设备别名][命令参数];
  第二个参数:返回信息的缓冲区,为一指定了大小的字符串变量;
  第三个参数:缓冲区的大小,就是字符变量的长度;
  第四个参数:回调方式,一般设为零;
  返回值:函数执行成功返回零,否则返回错误代码。
  参考用法如下:
  Dim mName as string
  mName = "f:\\mpeg\\mpeg1.avi"
  mciSendString "open mName type MPEGVideo Alias movie parent %u Style %u notify",0&, 0, 0
  
  

以上是关于mciSendString为啥有的MP3音乐播放不出来的主要内容,如果未能解决你的问题,请参考以下文章

mciSendString播放音乐

c语言如何用mciSendString来实现音乐播放功能

VB mcisendstring让音乐循环播放

C语言中mciSendString用法

如何在C语言游戏代码中加入音乐?

如何在C语言游戏代码中加入音乐?