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