怎样在VC中实现背景音乐自动循环播放 mciSendCommand函数

来源:百度知道 编辑:UC知道 时间:2024/06/12 18:45:39
就是不用每次播放完了,不用按play,就会自动地从开头开始播放。
用mciSendCommand函数,需要在点play,才会重放,怎么加工下
恩 ,我先试试,你有源码吗 能给我一份吗 liacahhx@sohu.com

还有个SND_LOOP你能说得清楚点吗。我看资料将mcisendcommand的参数之一设为mci_notify
之后响应MM_MCINOTIFY做过这方面的吗,我不知道咋响应阿

加个SND_LOOP循环就可以了呀!

假如你想在背景乐前还有其他很多音乐的话,建议你使用VFW,方便简单

可以同时播放N多音乐,下面时以前写的一个mp3播放器的,见笑呵呵!
支持wav,mid,mp3,wma等音频格式,如果音乐播放的时候继续打开,前面的音乐不会听掉,而是叠加在一起,实现你的背景音乐,MCIWnd开头的就是VFW的函数,使用很简单,估计你一看函数名就知道作用了!

void CMiniMp3Dlg::OnBtn1() //打开
{
// TODO: Add your control notification handler code here

m_Audio = NULL;
if(m_Audio == NULL)
{
CFileDialog mp3(TRUE,NULL,NULL,OFN_HIDEREADONLY,"MP3 WMA Files (*.mp3 *.WMA)|*.mp3;*.wma|");
if(mp3.DoModal() == IDOK)
{
m_Path = mp3.GetPathName();
m_Audio = MCIWndCreate(this->GetSafeHwnd(),
AfxGetInstanceHandle(),
WS_CHILD|MCIWNDF_NOMENU,m_Path);
long snd =MCIWndGetLength(m_Audio);//得到文件长度
m_sInfo=TimeFormat(snd);
//m_sInfo.Format("%d",snd);
UpdateData(FALSE);
m_cSliderMusic.SetRangeMin(0);
m_cSliderMusic.SetRangeMax(snd/1000);
}
}
}

void CMiniMp3Dlg::OnBtn2()