zoukankan      html  css  js  c++  java
  • AUDIOqueue 为什么会播放一段时间就听不到声音

    1. 转自简书;非常有用
    2. 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使用,更快的停止播放。、、这条勘误下,实测start前需要reset。否则还是过一段时间没声音



    作者:偶是星爷
    链接:https://www.jianshu.com/p/3d82065e819d
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    hadoop 主机名 无法访问问题解决汇总
    Linux 集群时间同步(Ubuntu)
    odoo里面的一些ORM操作
    odoo12动作里添加向导
    odoo看板笔记
    odoo中接口开发
    odoo视图 “动作” 里添加菜单按钮:案例
    odoo源码学习之任务中的阶段字段stage_id
    python中的abstractmethod
    U盘启动盘安装win10出现cdboot:couldn't find ntldr
  • 原文地址:https://www.cnblogs.com/8335IT/p/10615504.html
Copyright © 2011-2022 走看看