Looper工作方式相关类分析

本文探讨了播放器录音的设计,通过修改播放器二进制代码截获音频数据,并将其发送至自定义进程进行处理。阐述了与Looper类的对应关系,包括loop函数、Looper类、MessageQueue及Handler类的使用,展示了此类设计在音频数据流处理中的应用,以及其与Socket网络通信的相似性。

首先考虑一个播放器录音的设计。播放器录音是指,有一个第三方的播放器进程播放音乐,我们通过某种方式比如修改播放器的二进制代码,截获音频数据,然后把这些数据发往另一个我们自己开发的进程,在这个进程里面对接受的数据做处理。这涉及到两个进程。一个怎么设计我们的进程程序。首先需要一个类,专门负责和播放器进程通信;其次需要一个录音线程,不断循环读取这个类的音频数据;第三需要一个回调函数注册到线程里面,线程调用这个回调函数处理音频数据。

这可以和Looper有很好的对应。loop函数(loop本身也是静态的)对应着线程函数;Looper类对应上面的类;MessageQueue对应我们类里面的音频缓冲区;而回调函数对应着Handler类。

其实,很多这样的循环数据流的类型都可以这样设计,包括socket网络通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值