MCI发送指令无法进行播放音乐(编译链接通过),大神都来围观,给点意见

时光若止-Dale 2017-05-19 06:58:00

void CMFCmusicDlg::OnBnClickedPleyer() //播放音乐
{
// TODO: 在此添加控件通知处理程序代码
if (aa == "")
{
OnBnClickedOpen();
}
else
{
if (m_flag && aa != "")
{
m_flag = false;
MCI_OPEN_PARMS mciopenparms; //打开文件
MCI_VD_PLAY_PARMS mciplayparms;//播放
/*CString aa;*/
mciopenparms.lpstrElementName = aa; //播放路径
mciopenparms.lpstrDeviceType = NULL;//文件类型


//向MCI发送命令消息让操作系统进行播放
mciSendCommand(0, MCI_OPEN, MCI_DEVTYPE_WAVEFORM_AUDIO, (DWORD)(LPVOID)&mciopenparms);
m_count = mciopenparms.wDeviceID;//统计设备ID
mciplayparms.dwCallback = (DWORD)GetSafeHwnd();
cdlen = getinfo(MCI_STATUS_LENGTH); //得到歌曲的长度
//时间设置
cdto = MCI_MAKE_HMS(MCI_HMS_HOUR(cdlen), MCI_HMS_MINUTE(cdlen), MCI_HMS_SECOND(cdlen));
mciplayparms.dwFrom = cdfrom;
mciplayparms.dwTo = cdto;


mciSendCommand(m_count, MCI_PLAY, MCI_TO | MCI_FROM, (DWORD)(LPVOID)&mciplayparms);
m_sl.SetRange(0, cdlen);
SetTimer(0, 1000, NULL);
UpdateData(false);
}
else
{
m_flag = true;
KillTimer(0);
DWORD dwsf = getinfo(MCI_STATUS_POSITION);
cdfrom = MCI_MAKE_MSF(MCI_MSF_MINUTE(dwsf), MCI_MSF_SECOND(dwsf), MCI_MSF_FRAME(dwsf));
mciSendCommand(m_count, MCI_CLOSE, 0, NULL);
m_count = 0;

}
}
}
...全文
414 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧