怎么实现背景音乐循环播放?

wishifef 2010-08-23 11:36:31
我的做法是:
static void IMediamethod(test* pMe)
{
AEEMediaData mediaData;
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_MEDIAQCP, (void **)&pMe->m_pMedia);

mediaData.clsData = MMD_FILE_NAME;
mediaData.pData = "music.mid";
mediaData.dwSize = 0;
IMEDIA_SetMediaData(pMe->m_pMedia, &mediaData);
}
void Music_Start(test *pMe)
{
if (NULL!=pMe->m_pMedia)
{
IMEDIA_SetMediaParm(pMe->m_pMedia,MM_PARM_PLAY_REPEAT,0,0);
IMEDIA_Play(pMe->m_pMedia);
}
}

这种情况模拟器上可以实现循环播放,但是在真机上面不可以,

我换成注册回调:
static void MediaNotify(void *pUser,AEEMediaCmdNotify *pCmdNotify)
{
if(((test*)pUser)->isMusic)
{
if( pCmdNotify->nCmd == MM_CMD_PLAY)
{
if(pCmdNotify->nStatus == MM_STATUS_DONE)
{
IMEDIA_Play(((test*)pUser)->m_pMedia);
}
}
}
}

static void IMediamethod(test* pMe)
{
AEEMediaData mediaData;
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_MEDIAQCP, (void **)&pMe->m_pMedia);

mediaData.clsData = MMD_FILE_NAME;
mediaData.pData = "music.mid";
mediaData.dwSize = 0;
IMEDIA_SetMediaData(pMe->m_pMedia, &mediaData);
IMEDIA_RegisterNotify(pMe->m_pMedia,MediaNotify,(void *)pMe);
}

这样的话,模拟器循环倒是循环,但每按一下键,他就从头开始播放了,真机上没测,
IMediamethod()是在InitAppData函数里调用的,
那位高手给指点一下该怎么做,不知道用ISoundPlayer 接口怎么样,最好有真机上实现的实例,
先行谢过!
...全文
631 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
duyingfeng 2010-08-24
  • 打赏
  • 举报
回复
我就想哭,
duyingfeng 2010-08-24
  • 打赏
  • 举报
回复
大哥,你真牛逼啊,

949

社区成员

发帖
与我相关
我的任务
社区描述
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
人工智能物联网机器学习 企业社区 北京·东城区
社区管理员
  • Qualcomm开发
  • csdnsqst0050
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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