我想分析和调试一个video文件是如何在android中播放的。我搜索了很多,但我只知道MediaPlayer类如何与内部媒体播放器引擎交互,我无法了解内部媒体播放器引擎在 android 中的工作方式。任何帮助表示赞赏。谢谢你。
1 回答
MediaPlayer( ) 是从应用程序角度来看MediaPlayer.java的主要抽象。它通过接口 ( )MediaPlayer与其本机MediaPlayer实现 ( ) 交互。Mediaplayer.cppJNIandroid_media_Mediaplayer.cpp
player要创建的类型由MediaPlayerServicethrough中的参数决定MediaPlayerFactory。通常StagefrightPlayer或被NuPlayer创建。
如果StagefrightPlayer被创建,则实际player由AwesomePlayer.
AwesomePlayer暴露类似于 API主要MediaPlayer实现,因此,您可以在两者之间找到几乎1:1的映射,除了MediaPlayer::start由AwesomePlayer::play.
AwesomePlayer将创建MediaExtractorwhich 在内部将创建特定轨道的抽象MediaTrack作为个人的源tracks。
AwesomePlayer在内部创建audio和video跟踪特定对象,例如AudioPlayer和OMXCodec。
我在这里回答了您的另一个问题:Android Media Player 中的事件是什么意思?它概述了处理轨道的AV Synchronization功能和功能。AwesomePlayervideo
我希望这些信息对你的学习是足够的。