美文网首页
AudioQueue的坑

AudioQueue的坑

作者: 偶是星爷 | 来源:发表于2017-03-28 18:20 被阅读475次
    1. AudioQueue缓冲区为空时,那么AudioQueueOutputCallback回调不会再调用

    这个其实很好理解,AudioQueue的回调本事就是数据播完了才回调的

    1. AudioQueue播着播着就停了

    缓冲区长期处于饥饿状态,这个Queue就可能就用不了。饥饿限制的时间不定,短则几百毫秒,多则几秒。

    1. AudioQueueBuffer播放时长

    播放时长和mAudioDataByteSize相关(PCM)

    1. 锁屏

    锁屏(休眠)状态下,系统会降低App唤醒次数以降低功耗,所以AudioQueueOutputCallback的回调也会有延迟。导致的结果是声音可能已经播了很久回调才过来。

    1. 静音包

    声学原理上,振幅不变就是静音。对于压缩格式,数据全部为0,不一定是静音。

    1. AudioQueueStart

    AudioQueueStart可以多次连续调用,无副作用。当前AQ暂停后,在前台模式AQ还有机会重启。比如当前被音乐打断,可以重启AQ而把音乐打断;但是系统级的,比如来电,重启AQ会返回错误码。

    1. 录音

    默认情况下,录音用的是下面的麦克风。如果同时支持播放,声音从听筒出来。以降噪为评判,上面的MIC比下面的好

    1. AudioQueueReset

    AudioQueueReset的作用是清除音频队列缓冲区,调用后不能再Start。因此它一般配合Stop使用,更快的停止播放。

    相关文章

      网友评论

          本文标题:AudioQueue的坑

          本文链接:https://www.haomeiwen.com/subject/mlzcjttx.html