
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
达内it技术学员分享改进Android语音对讲系统诀窍,先看看通过生产者中的消费者模式保证数据链路的鲁棒性,具体的从责任链到生产者也就是消费者,在《实时Android语音对讲系统架构》对语音对讲系统的数据链路的分析中提到,数据包要经过Record、Encoder、Transmission、Decoder、Play这一链条的处理,这种数据流转就是对讲机核心抽象,鉴于这种场景,采用了责任链设计模式。
在后续实践中发现这样的结构存在一些问题,责任链模式适用于数据即时流转,需要整个链路没有阻塞、等待。而在本应用场景中,编解码及录制播放均可能存在时间延迟,责任链模式无法兼顾网络、编解码的延时。
事实上,通过缓存队列则可以保证数据链路的稳定性,分别在编解码和数据发送接收时加入阻塞队列,可以实现数据包的缓冲,同时降低丢包的可能。因此,在本系统场景下,基于阻塞队列实现了生产者-消费者模式,是对责任链模式的优化,意在提高数据链路的鲁棒性。
基于阻塞队列实现生产者-消费者模式
达内it培训包括以下内容:
阻塞队列(数据结构)
阻塞队列实现生产者-消费者模式
阻塞队列(数据结构)
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:
在队列为空时,获取元素的线程会等待队列变为非空。
当队列满时,存储元素的线程会等待队列可用。想知道改进Android语音对讲系统的新技术吗?点击昆明达内培训官网:http://km.tedu.cn