stagefright flow

也是草稿箱里的内容,想当年的知识:~不过还没写清楚。先放出来,然后慢慢地去完成。


在java层实用多媒体框架有下面几部:

1.  new MediaPlayer()

2. setDataSource()

3. prepare()

4. play()


每一步都做了什么:

new MediaPlayer():

native_setup(): new MediaPlayer()------>setMediaPlayer()


setDataSource():

最终在AwesomePlayer中调用setAudioSource()和setVideoSource().   这里的audio source和videosource还不具备解码功能。


prepare():

最终在AwesomePlayer中调用initAudioDecoder()和initVideoDecoder().  封装了解码功能


play():

怎么开始解码的需要详细整理一下。


在prepare()和play()过程中,触发AwesomePlayer的工作是通过发送消息来完成的:

prepare():  mQueue.postEvent(mAsyncPrepareEvent);

play():     mQueue.postEventWithDelay(mVideoEvent, delayUs < 0 ? 10000 : delayUs);//仅仅针对video的播放

               //audio的播放时通过startAudioPlayer_l()来开始的。


mQueue是TimedEventQueue类型的对象。需要先调用mQueue.start()来启动这个event queue用来接受并处理消息。postEvent和postEventWithDelay的参数在这里是一个AwesomeEvent对象。 AwesomeEvent继承自TimedEventQueue::Event类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值