IMedia播放音乐的问题(紧急)

yingbowu 2006-06-28 06:54:12
各位LD,请教个问题:
我用IMedia接口播放从网络上得到的数据,为什么第一次能播放出来,第二次用IMEDIA_SetMediaData重设数据,注册回调IMEDIA_RegisterNotify并IMEDIA_Play就没有声音了。
如果重新ISHELL_CreateInstance,再IMEDIA_SetMediaData重设数据,注册回调IMEDIA_RegisterNotify并IMEDIA_Play,就能播放出来,但是声音会有顿一下的感觉,这个怎么解决?
哪位LD搞过,指教一下。谢谢!!!
...全文
1175 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aarin 2006-10-09
  • 打赏
  • 举报
回复
“younggundog(炼狱中的游魂)的回答应该是准确的,如果不是idle状态,就不允许设置新的数据,如果在设置之前调用IMEDIA_Stop函数的话应该可以播放”
并且回调返回的状态为MM_STATUS_DONE 或MM_STATUS_ABORT时,才真正表示声音播放结束可以重新开始播放。
songcx 2006-10-09
  • 打赏
  • 举报
回复
如果是同样的数据,重复播放的话,用IMEDIA_SetMediaParm(MM_PARM_PLAY_REPEAT)设置一下就可以了。
如果不是同样的数据,在每次调用IMEDIA_SetMediaData时,判断其返回值,如果返回值是EBADSTATE,则可以设置Timer循环调用,如果是其他返回值,则根据返回值类型检查错误发生的地方。
efei 2006-09-14
  • 打赏
  • 举报
回复
汗,六月份的一个问题,想必楼主也早已解决了吧
efei 2006-09-14
  • 打赏
  • 举报
回复
同样的数据?

那就不需要重新设置数据了,播放完了直接继续播放

要问如何知道它播放完了,注册回调
sdchl 2006-09-06
  • 打赏
  • 举报
回复
younggundog(炼狱中的游魂)的回答应该是准确的,如果不是idle状态,就不允许设置新的数据,如果在设置之前调用IMEDIA_Stop函数的话应该可以播放。
aniuxiaodi 2006-09-04
  • 打赏
  • 举报
回复
brew IMeida接口收到的回调信息都是异步的,所以你需要在播放前设置一个100ms的timer!
lei001 2006-08-06
  • 打赏
  • 举报
回复
回调函数里面,重新处理一下的
hhygcy 2006-07-18
  • 打赏
  • 举报
回复
关于声音有延时,那个没有什么很好的办法,除非解析文件头自己合并内存
hhygcy 2006-07-18
  • 打赏
  • 举报
回复
我们也发现了类似的情况, 通常的做法是设置一个timer,等待100ms然后再继续播放第二个
younggundog 2006-07-06
  • 打赏
  • 举报
回复
本人理解:IMEDIA_SetMediaData,必须在IMedia 状态机的状态为:“空闲”设置才会起作用。

你可以看看IMedia 状态机的图

954

社区成员

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

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