首先考虑一个播放器录音的设计。播放器录音是指,有一个第三方的播放器进程播放音乐,我们通过某种方式比如修改播放器的二进制代码,截获音频数据,然后把这些数据发往另一个我们自己开发的进程,在这个进程里面对接受的数据做处理。这涉及到两个进程。一个怎么设计我们的进程程序。首先需要一个类,专门负责和播放器进程通信;其次需要一个录音线程,不断循环读取这个类的音频数据;第三需要一个回调函数注册到线程里面,线程调用这个回调函数处理音频数据。
这可以和Looper有很好的对应。loop函数(loop本身也是静态的)对应着线程函数;Looper类对应上面的类;MessageQueue对应我们类里面的音频缓冲区;而回调函数对应着Handler类。
其实,很多这样的循环数据流的类型都可以这样设计,包括socket网络通信。
本文探讨了播放器录音的设计,通过修改播放器二进制代码截获音频数据,并将其发送至自定义进程进行处理。阐述了与Looper类的对应关系,包括loop函数、Looper类、MessageQueue及Handler类的使用,展示了此类设计在音频数据流处理中的应用,以及其与Socket网络通信的相似性。
2016

被折叠的 条评论
为什么被折叠?



