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搞过,指教一下。谢谢!!!
...全文
1360 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 状态机的图
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 ### 信号与系统(郑君里 第三版)课后习题解析 #### 1. 信号与系统中δ函数的尺度变换特性 在《信号与系统》(郑君里 第三版)这一著作中,作者阐述了δ函数的尺度变换特性,并借助一个特定的习题进行了详尽的阐释。该习题的任务在于验证以下等式: \[ \delta(at) = \frac{1}{|a|}\delta(t) \] **论证:** 为了验证此等式,我们首先需要掌握δ函数的基本属性以及它如何响应自变量的变动。依据题目的指示,我们知道当自变量为\( t \)时,脉冲的底部长度为\( \tau \),而当自变量转变为\( at \)时,底部长度调整为\( |a|\tau \)。 我们能够借助图形化的手段来获得直观的认识。设想一个用三角形来逼近的δ函数图像,其底边长度为\( \tau \),高度为\( h \),那么三角形的面积计算为\( A = \frac{1}{2} \tau h \)。当自变量变为\( at \)时,为了维持三角形的高度恒定,底边长度必须更新为\( |a|\tau \),此时三角形的面积变为\( A = \frac{1}{2} |a|\tau h = |a|A \)。 由于δ函数的积分特性被定义为单位面积,即在任何区间\( [-\infty, +\infty] \)内的积分结果均为1,因此无论底部长度如何变化,积分值均保持恒定。这表明,当自变量转变为\( at \)时,为了确保积分值维持在1,δ函数的幅度必须相应地调整为原值的\( \frac{1}{|a|} \)倍。由此,我们得以证明该等式: \[ \int_{-\infty}^{+\infty}...

7,646

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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