Android多媒体——MediaPlayer的C/S架构(四)

        在 Android 中大量使用到了 C/S 架构来实现应用层和底层服务交互,而 Binder 机制无处不在。同样 MediaPlayer 也使用了这种机制,MediaPlayer 在运行的时候,同样可以分为 Client/Server 两个部分,他们分别在不同的进程中行,不同进程间的通信使用 Binder 机制,我们这里就以 setDataSource() 为例进行分析。

一、C/S架构

1、C/S架构

Android多媒体——MediaPlayer的C/S架构(四)_第1张图片

  • 如果从功能角度看,最上层是 Java 层 MediaPlayer 的 API, 然后通过 JNI 层到 C++ 层之间的 IPC 通信,最下边就是 palyer 的具体实现了(StageFrightPlayer、NuPlayer 等等)
  • C++ 层是比较重要的环节,这一块也是 C/S 架构的核心,主要围绕 C++ 层 MediaPlayer 通 BpMediaPlayerService 这个 proxy 对象,经过 IPC 与远程服务

你可能感兴趣的:(Android多媒体,android,多媒体)