欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

brew平台下的音乐播放的回调函数的有关问题

更新时间: 2014-01-05 02:46:09 责任编辑: Author_N1

 

BREW平台下的音乐播放的回调函数的问题?
我移植了一个小游戏,进入游戏的时候有背景音乐,而且背景音乐循环播放;点右软件的时候返回菜单的时候停止背景音乐播放!

回调函数:void Music_Play_CallBack(happyFamily* pMe,AEEMediaCmdNotify * pCmdNotify)
{
if (MM_STATUS_DONE == pCmdNotify->nStatus)
{
IMEDIA_Play(pMe->pMedia);
}  
}
这里可以实现循环播放。

点右软件的时候返回菜单的时候停止背景音乐播放:
void HF_StopSound(happyFamily * pMe)
{
IMEDIA_RegisterNotify(pMe->pMedia,(PFNMEDIANOTIFY)NULL,NULL);
if(SUCCESS != IMedia_Stop(pMe->pMedia)){
return;
}
}
这里不使用回调函数的时候确实可以停止,使用了回调就不能停止了,我SDK下了IMedia_Stop()函数发现这个函数有副作用:“这些事件将在注册回调中返回。 请参阅 AEEMediaCmdNotify 文档。 此函数将导致 MM_STATUS_DONE 或 MM_RESUME_ABORT 状态。 ”SDK的原话。原来IMedia_Stop()这个函数在回调函数里面返回的状态是MM_STATUS_DONE,和回调函数里面截获的播放完音乐的消息是一个消息。

这里请教高手我该怎么实现?上面的功能.音乐播放完和IMedia_Stop()音乐是一个状态?
谁做过类似的例子指教下,谢谢高手们、谢谢好心人、好心人长命万岁,嘿嘿!



--参考方法--
播放完毕而停止与Stop()停止都产生同一个状态,从IMedia本身机制加以区分似乎不容易,而从外部加以区分则很简单,增加一个标志位,HF_StopSound()中设置此标志位,在MM_STATUS_DONE中根据此标志位决定是否重放。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:46:09
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/14202/
本文WWW.DOC100.NET DOC100.NET版权所有。