MCI和PlaySound的有关问题

MCI和PlaySound的问题
我用了MCI来播放背景音乐
HWND m_hMCI = MCIWndCreate(NULL, NULL,WS_POPUP|MCIWNDF_NOPLAYBAR|MCIWNDF_NOMENU,"music.wav");
MCIWndPlay(m_hMCI);

又定义了另外一个播放其他音乐的函数。(就是游戏中的行动音乐,很短的,两三秒的)
//声音播放函数
void CGameWnd::GamePlaySound(void)
{
//播放指定音乐
switch (m_iSoundState)
{
case SOUND_STATE_MOVE :
PlaySound((LPCTSTR)IDR_MOVE, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC); 
break;
case SOUND_STATE_EAT :
PlaySound((LPCTSTR)IDR_EAT, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC); 
break;
case SOUND_STATE_DIE :
PlaySound((LPCTSTR)IDR_DIE, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC); 
break;
case SOUND_STATE_VICTORY :
PlaySound((LPCTSTR)IDR_VICTORY, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC); 
break;
}
return;
}

但不知道为什么,刚开始一切正常,但一段时间后(不确定多久,可能很快一两秒就停了,也可能几十秒),背景音乐继续播放,但其它音乐却没有没有声音了,是不是MCI和PlaySound有冲突?或者我的函数参数有问题?求解答。

------解决方案--------------------
playsound播放会一直播放到结束,而且和mci一起使用也没有看到有出错的问题。
不过我遇到的情况用的mciSendString来控制mci的播放的。
我怀疑问题还是出在GamePlaySound的这个循环中,或许GamePlaySound已经不再被执行了?
------解决方案--------------------
PlaySound只能允许同一时间播放一个音乐,也就是不支持混合播放。(其实也是可以的,只不过声音会出现截断和混乱,因为它一会播这个,一会播那个,随着时间片去播放声音)因此在OpenGL只能用OpenAL来异步播放声音了,混合效果很好,支持跨平台。当然,微软的DirectSound也是支持混合播放的,不过不支持跨平台。你可以查查DirectSound