从不同层次间查看播放完毕的消息传递。
Java应用层处理:
(1) new OnCompletetionListener()创建一个继承于onCompletetionListener的一个对象。
(2) setOnCompletetionListener为MediaPlayer(Java)绑定(1)创建的onCompletetionListener()。
Java框架层处理:
传递的消息在Java框架层进行处理,创建 Class EventHandle(继承 Handle)处理消息。根据不同的事件调用应用层设置的函数。另处,播放完毕的消息来自低层,设置接口方便下层调用。
JNI(往上调)
(1) 声明定义了 JNIMediaPlayerListener::MediaPlayerListener,MediaPlayerListner
(2) 创建MediaPlayer(C++)时为其绑定一个JNIMediaPlayerListener
C++框架层Client(往上调)
(1) 调用绑定的MediaPlayerListener::notify往上传递消息。
(2) 并在创建MediaPlayerService::Client时,保存MediaPlayer.this,方便调用MediaPlayer.
C++框架层MediaPlayerService::Client(往上调)
创建不同的MediaPlayerBase时,绑定notify回调函数
Stagefright (往上调)