- Android音视频开发
- 何俊林
- 283字
- 2020-08-27 17:06:39
3.1 Client/Server通过IPC的通信流程图
我们知道一般Android中很多通信是通过Binder机制来完成的,对于MediaPlayer和MediaPlayerService来说也不例外。我们通过图3-1来看看它们是如何通信的。
![](https://epubservercos.yuewen.com/13E7E8/16896237204360306/epubprivate/OEBPS/Images/txt003_1.jpg?sign=1739673729-H8JZYqKLVjgixQEj0juT4qAj0SpVttwo-0-3768f2464be63ec075876bf2e476a0ef)
图3-1 MediaPlayer和MediaPlayerService通过Binder通信
从图3-1中可以总结出如下几点。
• MediaPlayer是客户端,也就是我们所说的C/S模型中的C端,即Client。
• MediaPlayerService和MediaPlayerService::Client是服务器端,也就是我们所说的C/S模型中的S端,即Server端。
• MediaPlayerService实现IMediaPlayerService定义的业务逻辑,其主要功能是根据MediaPlayer::setDataSource输入的URL调用create函数创建对应的player。
• MediaPlayerService::Client实现IMediaPlayer定义的业务逻辑,其主要功能包括start、stop、pause、resume……其是通过调用MediaPlayerService create的player中的对应方法来实现具体功能的。
• 通过Transact函数可以向远端的IBinder对象发出调用,通过onTransact函数可以使你自己的远程对象能够响应接收到的调用。