Android MediaPlayer架构图解
来源:互联网 发布:淘宝官方下载电脑版 编辑:程序博客网 时间:2024/04/30 14:32
在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。
来自: http://blog.csdn.net/itachi85/article/details/7215409
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。
来自: http://blog.csdn.net/itachi85/article/details/7215409
0 0
- Android MediaPlayer架构图解
- Android MediaPlayer架构图解
- android mediaplayer + stagefright 框架图解
- android MediaPlayer 架构介绍
- android mediaplayer 架构总结
- MediaPlayer+Stagefright架构(音频)图解
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- Android的MediaPlayer架构介绍
- android mediaplayer架构 补充介绍
- android程序奔溃异常捕捉
- C#中双问号(??)在检测Null方面的带来的方便
- 分布式文件系统(未完)
- Kali Linux 安全渗透教程<第六更>1.4.2 安装至USB驱动器Kali Linux
- Android清理设备内存详细完整示例(一)
- Android MediaPlayer架构图解
- MySql安装后各种错误解决办法
- 细说C++覆盖方法和重载方法
- 条款23:宁以no-member、no_friend替换member函数
- jQuery移除元素自动解绑事件实现
- 点击返回键2次退出程序
- Javascript中Window.open参数详解
- Photoshop CS6新特性上手(一、二)
- Cocos2dx 学习记录 [2] 关于混合和高亮一些知识点的体会