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
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

AUDIOqueue 为什么会播放一段时间就听不到声音的更多相关文章

  1. Android IJKPlayer缓冲区设置以及播放一段时间出错解决方案

    IJKPlayer拖动播放进度会导致重新请求数据,未使用已经缓冲好的数据,所以应该尽量控制缓冲区大小,减少不必要的数据损失. mMediaPlayer.setOption(IjkMediaPlayer ...

  2. iOS音频播放之AudioQueue(一):播放本地音乐

    AudioQueue简单介绍 AudioStreamer说明 AudioQueue具体解释 AudioQueue工作原理 AudioQueue主要接口 AudioQueueNewOutput Audi ...

  3. 从配置读取一段时间(TimeSpan)

    C#的TimeSpan表示一段时间,DateTime表示一个时间点.TimeSpan可正可负,可与DateTime相加减,很方便,我喜欢. 代码中我们经常要表示一段时间,用一个统一的单位(时 或者 分 ...

  4. Win8.1开机黑屏一段时间才能登录

    最近发现开机后有一段时间黑屏过后才能进人登录界面,并且时间越来越长,网上查询了很多方法都没有效果,只能自己找了. 网上有一种方法提到用msconfig诊断判断或者安全启动来查看是否有黑屏,于是试了一下 ...

  5. 关于ScheduledExecutorService执行一段时间之后就不执行的问题

    在项目中使用java的定时任务时,有的时候执行一段时间后没任何反应了.这里有篇文章说了这个问题.猛击下面的链接. http://blog.163.com/scuqifuguang@126/blog/s ...

  6. 这段时间对c#和java的感受

    这段时间对c#和java的感受 虽然很多书上说语法相似,但实际这是一个接近于门外汉的看法 真正的不同是 c#对更贴近系统API,      而java倡导跨平台 因而c#语法关键字更多,更细, 而ja ...

  7. C#实现每隔一段时间执行代码(多线程)

    总结以下三种方法,实现c#每隔一段时间执行代码: 方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间: 方法二:使用System.Timers.Timer类: 方法三:使用Sys ...

  8. IIS服务器运行一段时间后卡死,且无法打开网站(IIS管理无响应,必须重启电脑)

    问题描述: 公司希望使用IIS配合网站显示一些订单跟进的情况并展示出来,所以我们在一台演示的Win7 Pro电脑上安装了IIS,但使用了一段时间后发现每过几天页面就无法正常访问了,而且打开IIS管理器 ...

  9. storm进程正常运行一段时间shut down,运维方式

    storm启动一段时间后,无征兆的停止了,然后nimbus,supervisor,ui所有的worker都stop了. 我用的storm是0.8.2版本的 nimbus中留下的log如下 -- :: ...

随机推荐

  1. JS基础——原型和原型链

    1.相关知识点 (1)构造函数  (函数名首字母大写表示构造函数) function Foo(name,age){ this.name = name; this.age = age; this.cla ...

  2. 如何让SQLServer的 itemNum 字段 按照数字大小顺序排序

    我的 itemNum 从1到20,可是超过了SQLServer的默认排序这样的1101112...19234567如何才能让排序成为这样1234567891011.. . 解决办法:因为 itemNu ...

  3. Windows 10 +VS2019 编译OpenCV 4.1.0

    准备环境 安装cmake 官网 获取代码 github 下载拓展库opencv_contrib github 生成Sln cmake安装完后桌面会有一个快捷方式,可打开cmakeGUI,打开它. 第一 ...

  4. php redis 操作

    在php里边,redis就是一个功能类,该类中有许多成员方法(名字基本与redis指令的名字一致,参数也一致). 实例: <?php $redis = new Redis(); //连接本地的  ...

  5. JAVA分布式优惠券系统后台 手把手实战开发(买的,完整)

    扫码关注,回复 “java分布式优惠券”,免费领取.本资源是本人花几十块买的,完整.

  6. [java,2019-01-28] 枪手博弈,谁才是最后赢家

    什么是枪手博弈: 枪手博弈指彼此痛恨的甲乙丙三个枪手准备决斗.甲枪法最好,十发八中.乙枪法次之,十发六中.丙枪法最差,十发四中.假设他们了解彼此实力,也能做出理性判断. 问题一:如果三人同时开枪,并且 ...

  7. python3下调用系统massagebox对话框

    #python3下调用系统massagebox对话框#先安装pwin32插件https://github.com/mhammond/pywin32/releases import win32apiim ...

  8. Zabbix常见问题

    1.Q:  agent日志中出现“active check configuration update from [127.0.0.1:10051] started to fail (cannot co ...

  9. dubbo . dubbo Please check registry access list (whitelist/blacklist) 错误

    dubbo Please check registry access list (whitelist/blacklist) dubbo服务调用provider失败.解决办法: 再consumer的服务 ...

  10. group_concat_max_len

    SET SESSION group_concat_max_len = 1000000; SELECT GROUP_CONCAT(a.label_number SEPARATOR ',') FROM ( ...