android mediaplayer + stagefright 框架图解
来源:互联网 发布:ctr预估数据集 编辑:程序博客网 时间:2024/05/21 06:18
在android原生的媒体播放器中是由mediaplayerservice来控制媒体播放器的,在mediaplayerservice中创建了mediaplayer,在mediaplayer.java的native方法通过jni调用android_media_mediaplayer.cpp中的方法,接着往下调用mediaplayer.cpp中的方法,mediaplayer通过ipc机制调用mediaplayerService中的方法,mediaplayerService通过对文件格式的判断来选择不同的播放器来播放音乐,当是midi格式时会选择sonivox来播放,当系统的配置文件中允许ogg格式由vorbris来播放时则用vorbris,否则用stagefright来播放。其余的格式由配置文件选择是否由stagefright来播放,是则由stagefright播放,不是则由opencore的pvplayer来播放。
stagefright由awesongplayer来控制,他会调用setDatasource()方法来加载音频文件,根据音频文件的头字段不同来选择不同的解析器,这个解析器会进行av分离分离出audioTrack和videoTrack,接着会根据audioTrack的mineType类型来选择不同的编码器来进行编码,这个是由audioSource来进行解码,audioSource是对omxCodec的封装,而audioPlayer则是用来控制audioSource和audioTrack的。audioplayer调用fillBuffer()方法将解完码的数据写进data中最终将解完码的数据流最后会传给AudioTrack,由audioTrack来交给audioFlinger,audioTrack通过调用creataudioTrack()来得到audioFlinger返回的iaudioTrack,将数据流写进iaudioTrack的共享buffer中,然后audioFlinger读出缓存中的数据交给playbackTread进行混音或者直接输出给缓存并最终将数据给audioOutputStream
- android mediaplayer + stagefright 框架图解
- Android MediaPlayer+Stagefright框架(音频)图解
- Android MediaPlayer+Stagefright框架(音频)图解
- Android MediaPlayer+Stagefright框架(音频)图解
- MediaPlayer+Stagefright架构(音频)图解
- Android多媒体开发【4】-- 上层mediaPlayer 是如何调到Stagefright的【2】【图解】
- Android多媒体开发【4】-- 上层mediaPlayer 是如何调到Stagefright的【2】【图解】
- Android 源码分析之基于Stagefright的MediaPlayer播放框架[4]
- Android 源码分析之基于Stagefright的MediaPlayer播放框架[3]
- Android MediaPlayer架构图解
- Android MediaPlayer架构图解
- android stagefright 框架
- Android Stagefright框架
- android stagefright框架
- android stagefright框架
- android StageFright框架解读
- Android MediaPlayer框架分析
- stagefright框架
- seo没有你想象中的那样复杂
- 这是一个怎样的我-1
- 因为/etc/hosts中问题导致监听挂起-报错:WARNING: Subscription for node down event still pending
- openstack各个组件技术分析分享博客
- IPMI 介绍
- android mediaplayer + stagefright 框架图解
- NodeJS url验证(url-valid)的使用方法
- ClickOnce部署教程
- [Hadoop源码解读](二)MapReduce篇之Mapper类<转>
- 在做屏幕广播中遇到的问题
- javascript中的while循环
- [Hadoop源码解读](三)MapReduce篇之Job类<转>
- 禁止空格提交表单的js代码
- [木马]不释放资源到本地文件系统,直接运行其内嵌exe程序 卡巴竟然报毒,MSE正常