VC/MFC编程如何播放mp3音乐 可以用mci(多媒体控制接口)啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mciSendCommand 如何循环播放音乐 mciSendCommand 如何循环播放单首音乐有高手解答一下吗 char buf[128]; //use mciSendString() //mciSendString("play e:\\songs\\把根留住.mp3",buf,sizeof(buf),NULL); //mciSendString("play e:\\songs\\zhj.mp3",buf,sizeof(buf),NULL); //char str[128] = {0}; //int i = 0; //use mciSendCommand MCI_OPEN_PARMS mciOpen; MCIERROR mciError; //mciOpen.lpstrDeviceType = (LPCTSTR)MCI_ALL_DEVICE_ID; //mciOpen.lpstrDeviceType = "waveaudio"; //只能播放.wav文件 //mciOpen.lpstrDeviceType = "avivideo"; //*.avi mciOpen.lpstrDeviceType = "mpegvideo"; //mciOpen.lpstrDeviceType = "sequencer"; mciOpen.lpstrElementName = "e:\\music\\forever.mp3"; //mciOpen.lpstrElementName = "e:\\movie\\first.avi"; //mciOpen.lpstrElementName = "c:\\winnt\\media\\Windows 登录音.wav"; mciError = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD)&mciOpen); if(mciError) { mciGetErrorString(mciError,buf,128); MessageBox("send MCI_PLAY command failed"); return; } UINT DeviceID = mciOpen.wDeviceID ; MCI_PLAY_PARMS mciPlay; //mciError = mciSendCommand(DeviceID,MCI_PLAY,0 ,(DWORD)&mciPlay); mciError = mciSendCommand(DeviceID, MCI_PLAY, MCI_FROM | MCI_TO | MCI_WAIT | MCI_DGV_PLAY_REPEAT, (DWORD) (LPMCI_PLAY_PARMS)&mciPlay); if(mciError) { MessageBox("send MCI_PLAY command failed"); return; } /* while(1) { i++; Sleep(1000); } */ char buf[128]; //use mciSendString() //mciSendString("play e:\\songs\\把根留住.mp3",buf,sizeof(buf),NULL); //mciSendString("play e:\\songs\\zhj.mp3",buf,sizeof(buf),NULL); //char str[128] = {0}; //int i = 0; //use mciSendCommand MCI_OPEN_PARMS mciOpen; MCIERROR mciError; //mciOpen.lpstrDeviceType = (LPCTSTR)MCI_ALL_DEVICE_ID; //mciOpen.lpstrDeviceType = "waveaudio"; //只能播放.wav文件 //mciOpen.lpstrDeviceType = "avivideo"; //*.avi mciOpen.lpstrDeviceType = "mpegvideo"; //mciOpen.lpstrDeviceType = "sequencer"; mciOpen.lpstrElementName = "e:\\music\\forever.mp3"; //mciOpen.lpstrElementName = "e:\\movie\\first.avi"; //mciOpen.lpstrElementName = "c:\\winnt\\media\\Windows 登录音.wav"; mciError = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD)&mciOpen); if(mciError) { mciGetErrorString(mciError,buf,128); MessageBox("send MCI_PLAY command failed", "ERROR"); return; } UINT DeviceID = mciOpen.wDeviceID ; MCI_PLAY_PARMS mciPlay; //mciError = mciSendCommand(DeviceID,MCI_PLAY,0 ,(DWORD)&mciPlay); //MCI_FROM | MCI_TO | mciError = mciSendCommand(DeviceID, MCI_PLAY, MCI_WAIT | MCI_DGV_PLAY_REPEAT, (DWORD) (LPMCI_PLAY_PARMS)&mciPlay); //MCI_DGV_PLAY_REPEAT, 要 #include "Digitalv.h" if(mciError) { mciGetErrorString(mciError,buf,128); MessageBox("send MCI_PLAY command failed", "ERROR"); return; } /* while(1) { i++; Sleep(1000); } */ 也可以使用directshow 来播放。 自己给mp3路径就可以了 自动智能播放。 学习了,最近在学用MCI来实现播放音频文件(WAV格式和MIDI格式)、以及视频文件(AVI格式) ,呵呵! 其实VC里面有相应的控件的“ Windows Media Player",在对话框中打击右键。选择插入 ActiveX就可以找到这个控件,这个空间其实特别方面,就只有几个函数操作文件的打开、播放和停止了,具体的在MSDEN或者百度一下就好了。 这个空间可以播放mp3和mp4,效果与windows操作系统里面自带的windows media player差不多的 这是什么原因 继续问 关于CArchive()构造函数第二个参数 bNoFlushOnDelete属性 树的节点计数 一个关于ATL Connection Point机制中COM接口类型转换的问题 如何监视一个DLL被哪些程序调用和调用了哪些函数? 关于opencv修改成员函数 怎样将基于对话框的应用程序做成无模式对话框? Java服务器,VC客户端,服务器readUTF一直等待? 小问题,大送分! 怎么创建并显示浮动工具条? 用MFC做的显示记录显示出来的信息和数据库里的不一样怎么办? [求助]Visual C++ components 文件夹为空
如何循环播放音乐
如何循环播放单首音乐
有高手解答一下吗
//use mciSendString()
//mciSendString("play e:\\songs\\把根留住.mp3",buf,sizeof(buf),NULL);
//mciSendString("play e:\\songs\\zhj.mp3",buf,sizeof(buf),NULL);
//char str[128] = {0};
//int i = 0;
//use mciSendCommand
MCI_OPEN_PARMS mciOpen;
MCIERROR mciError;
//mciOpen.lpstrDeviceType = (LPCTSTR)MCI_ALL_DEVICE_ID;
//mciOpen.lpstrDeviceType = "waveaudio"; //只能播放.wav文件
//mciOpen.lpstrDeviceType = "avivideo"; //*.avi
mciOpen.lpstrDeviceType = "mpegvideo";
//mciOpen.lpstrDeviceType = "sequencer";
mciOpen.lpstrElementName = "e:\\music\\forever.mp3";
//mciOpen.lpstrElementName = "e:\\movie\\first.avi";
//mciOpen.lpstrElementName = "c:\\winnt\\media\\Windows 登录音.wav";
mciError = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD)&mciOpen);
if(mciError)
{
mciGetErrorString(mciError,buf,128);
MessageBox("send MCI_PLAY command failed");
return;
}
UINT DeviceID = mciOpen.wDeviceID ;
MCI_PLAY_PARMS mciPlay; //mciError = mciSendCommand(DeviceID,MCI_PLAY,0 ,(DWORD)&mciPlay);
mciError = mciSendCommand(DeviceID, MCI_PLAY, MCI_FROM | MCI_TO | MCI_WAIT | MCI_DGV_PLAY_REPEAT,
(DWORD) (LPMCI_PLAY_PARMS)&mciPlay);
if(mciError)
{
MessageBox("send MCI_PLAY command failed");
return;
}
/*
while(1)
{
i++;
Sleep(1000);
}
*/
//use mciSendString()
//mciSendString("play e:\\songs\\把根留住.mp3",buf,sizeof(buf),NULL);
//mciSendString("play e:\\songs\\zhj.mp3",buf,sizeof(buf),NULL);
//char str[128] = {0};
//int i = 0;
//use mciSendCommand
MCI_OPEN_PARMS mciOpen;
MCIERROR mciError;
//mciOpen.lpstrDeviceType = (LPCTSTR)MCI_ALL_DEVICE_ID;
//mciOpen.lpstrDeviceType = "waveaudio"; //只能播放.wav文件
//mciOpen.lpstrDeviceType = "avivideo"; //*.avi
mciOpen.lpstrDeviceType = "mpegvideo";
//mciOpen.lpstrDeviceType = "sequencer";
mciOpen.lpstrElementName = "e:\\music\\forever.mp3";
//mciOpen.lpstrElementName = "e:\\movie\\first.avi";
//mciOpen.lpstrElementName = "c:\\winnt\\media\\Windows 登录音.wav";
mciError = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD)&mciOpen);
if(mciError)
{
mciGetErrorString(mciError,buf,128);
MessageBox("send MCI_PLAY command failed", "ERROR");
return;
}
UINT DeviceID = mciOpen.wDeviceID ;
MCI_PLAY_PARMS mciPlay; //mciError = mciSendCommand(DeviceID,MCI_PLAY,0 ,(DWORD)&mciPlay);
//MCI_FROM | MCI_TO |
mciError = mciSendCommand(DeviceID, MCI_PLAY, MCI_WAIT | MCI_DGV_PLAY_REPEAT,
(DWORD) (LPMCI_PLAY_PARMS)&mciPlay); //MCI_DGV_PLAY_REPEAT, 要 #include "Digitalv.h"
if(mciError)
{
mciGetErrorString(mciError,buf,128);
MessageBox("send MCI_PLAY command failed", "ERROR");
return;
}
/*
while(1)
{
i++;
Sleep(1000);
}
*/
自动智能播放。
(WAV格式和MIDI格式)、
以及视频文件(AVI格式) ,呵呵!