背景
播放当前板子上的音乐,同时获取音乐信息(封面、时长、歌名)并在其他应用中显示并模拟播放,以实现音乐的同步播放的功能。这里以获取封面信息为例讲解实现。
方案
Android源生+socket服务+第三方应用。用Android源生的media播放器,实现获取音乐信息的功能,并在其中添加自定义的AIDL服务;用于和socket服务通讯。Socket服务接收media播放器传过来的封面uri信息,并解析成字节数组,然后通过socket发送出去;第三方应用作为socket服务端,用以接收字节信息并显示音乐封面。这里socket通讯作了大小限制,每次传输1024字节,加开始和结束标识,分多次传送音乐封面信息。
Android源生media端
添加一个AIDL服务并定义一个传输数据的接口;实现一个Application类,定义传输数据的方法,和socket服务建立连接,连接成功后取得AIDL服务,在传输数据方法中调用AIDL中的接口;在适当的地方调用Application的传输数据方法传输数据,这里是MediaPlaybackFragment。