1. 由于小弟用的平台的AV播放一直不稳定,为研究其原由,不得不把MediaPlayer这个东东搞个明白。
2. 媒体播放器本地部分对上层的接口是MediaPlayer,对下层的接口是媒体播放器对硬件的抽象层,StagefrightPlayer是其中的一个实现,你也可以自己基于硬件驱动实现一个MyPlayer,然后添加到MediaPlayerService.cpp中的createPlayer中,同时需要修改本文件中的getPlayerType以指定哪些类型由你的MyPlayer来处理。CreatePlayer中是根据URL的player_type来创建对应的播放器,并把它保存在MediaPlayerService::Client的mPlayer成员变量中,以供BnMediaPlayer的onTransact调用。
3. 媒体播放器的框架如下图所示: