在Android中获取Media Player的内部详细信息

时间:2013-03-27 09:17:15

标签: android android-mediaplayer

我想分析和调试如何在android中播放video文件。我搜索了很多,但我只得到MediaPlayer班级与内部媒体播放器引擎的互动方式,而我无法了解内部媒体播放器引擎的工作原理机器人。任何帮助表示赞赏。 谢谢。

1 个答案:

答案 0 :(得分:1)

MediaPlayerMediaPlayer.java)是应用程序视角的主要MediaPlayer抽象。它通过MediaPlayer界面(Mediaplayer.cpp)与其原生JNI实施(android_media_Mediaplayer.cpp)互动。

要创建的player类型是通过MediaPlayerServiceMediaPlayerFactory中的参数决定的。通常会创建StagefrightPlayerNuPlayer

如果创建了StagefrightPlayer,那么player实施的实际AwesomePlayer

AwesomePlayer类似的 API公开给主MediaPlayer实现,因此,您可以找到几乎 1:1 的映射除了由MediaPlayer::start实现的AwesomePlayer::play之外,两者之间。

AwesomePlayer将创建MediaExtractor,其内部将为MediaTrack创建特定曲目的抽象,作为个人tracks的来源。

AwesomePlayer在内部创建audiovideo跟踪特定对象,例如AudioPlayerOMXCodec

我在这里回答了您的另一个问题:What is meant by event in Android Media Player?,其中概述AV SynchronizationAwesomePlayer处理video曲目的功能。

我希望这些信息对你的学习来说已经足够了。