我想分析和调试如何在android中播放video
文件。我搜索了很多,但我只得到MediaPlayer
班级与内部媒体播放器引擎的互动方式,而我无法了解内部媒体播放器引擎的工作原理机器人。任何帮助表示赞赏。
谢谢。
答案 0 :(得分:1)
MediaPlayer
(MediaPlayer.java
)是应用程序视角的主要MediaPlayer
抽象。它通过MediaPlayer
界面(Mediaplayer.cpp
)与其原生JNI
实施(android_media_Mediaplayer.cpp
)互动。
要创建的player
类型是通过MediaPlayerService
到MediaPlayerFactory
中的参数决定的。通常会创建StagefrightPlayer
或NuPlayer
。
如果创建了StagefrightPlayer
,那么player
实施的实际AwesomePlayer
。
AwesomePlayer
将类似的 API
公开给主MediaPlayer
实现,因此,您可以找到几乎 1:1 的映射除了由MediaPlayer::start
实现的AwesomePlayer::play
之外,两者之间。
AwesomePlayer
将创建MediaExtractor
,其内部将为MediaTrack
创建特定曲目的抽象,作为个人tracks
的来源。
AwesomePlayer
在内部创建audio
和video
跟踪特定对象,例如AudioPlayer
和OMXCodec
。
我在这里回答了您的另一个问题:What is meant by event in Android Media Player?,其中概述AV Synchronization
和AwesomePlayer
处理video
曲目的功能。
我希望这些信息对你的学习来说已经足够了。