对Audio Xrun的一点了解

本文介绍了Android音频播放中的Xrun(欠载和超载)现象,从硬件、驱动和框架三个层次进行分析。硬件层的Xrun主要是由于FIFO数据不足,可能由总线资源占用或RingBuffer B数据不够引起;驱动层的Xrun可能是由于上层RingBuffer A数据不足或驱动本身问题;框架层的Xrun通常由于解码性能、策略、延时计算错误等原因造成。
摘要由CSDN通过智能技术生成
在《Android Audio Throttle》中描述过:
Underrun(underflow),buffer underrun or buffer underflow is a state occurring when a buffer fed with data at a lower speed than the data is being read from it。就是说生产者生产和速度比消费者的速度要慢,也通俗点说是写入ring buffer比读的要慢,导致读不到数据。
Overrun(overflow),与Underrun是相反的状态,就是读比写的速度要慢。

关于xrun可以分为三个层次来说,就是硬件层、驱动层和frameworks层。这三个层次都分别会产生xrun。
用一个简单的图来表示Android音频播放的数据流:
从这个流程来看,有三个点是可能存在xrun的&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值