gpt4 book ai didi

ios - 为什么iOS音频捕获回调时间间隔不流畅?

转载 作者:行者123 更新时间:2023-12-03 00:24:43 25 4
gpt4 key购买 nike

我编写iOS应用程序来录制音频。

我调用了session.setPreferredIOBufferDuration(0.001)来设置持续时间,并记录了两个回调之间的间隔。

这是我的iPhone 8的数据:

max =  198 avg =  2.75314 min =  0 
======================================================
4 2 2 3 5 3 1 3 6 1
2 2 6 0 5 3 1 3 3 5
1 3 3 2 3 5 1 3 3 3
3 4 1 4 3 2 4 2 3 3
3 3 3 3 2 3 3 3 5 1
3 2 3 3 3 3 3 5 1 3
3 3 3 3 3 3 4 1 3 3
3 3 3 2 3 4 2 3 3 3
3 4 5 0 2 3 3 3 3 3
3 3 3 3 2 3 4 2 3 3
3 3 3 3 3 3 4 2 2 4
3 2 4 2 3 2 4 3 4 2
2 3 3 3 3 2 4 3 5 1
2 4 2 3 2 3 4 3 3 2
4 5 1 2 3 4 2 4 1 3
3 3 3 5 2 2 2 4 2 3
3 3 3 6 0 3 3 3 2 3
3 3 4 2 3 3 2 3 3 3
3 3 3 3 5 1 2 3 3 3
3 3 4 4 1 2 3 3 4 2
3 3 3 3 3 2 3 6 0 3
3 3 4 2 3 3 3 2 5 1

这是我的iPhone 7的数据:
max =  246 avg =  2.59249 min =  0 
======================================================
3 2 3 2 3 3 5 2 2 3
3 3 3 4 2 2 3 3 3 3
221 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 2 0 0 0
0 0 0 0 0 0 0 1 7 1
1 3 2 3 3 3 3 2 4 4
1 3 4 2 3 3 5 4 0 2
3 5 2 3 2 3 3 4 2 3
2 6 0 4 2 3 3 3 4 3
1 3 3 3 5 3 1 3 3 2

如您所见, 最大间隔距离我设置为 AudioSession的1ms远。
iPhone 7上的大量数字经常出现。

为什么iOS无法顺利调用我的回调?我可以做一些事情,例如设置一些首选项,以获得更平滑的数据吗?

谢谢。

最佳答案

1)首选的缓冲区持续时间仅是操作系统的建议。大多数情况下,取决于设备型号的硬件功能。当前所有iOS设备均支持256帧。较小的数字可能仅在某些较新的iOS设备型号上起作用。但是iOS设备可以为每个音频单元回调自由使用不同的缓冲区大小(因此,持续时间)。有时会这样做(由于电源管理,音频路由更改,硬件启动/停止问题等)

2)音频单元缓冲区回调开始之间的间隔非常一致。高度可变的延迟问题通常是回调中的代码花费的时间太长的结果。您是否遵守所有音频上下文实时规则? (没有长时间的操作,没有Swift,没有Objective C消息传递,没有锁,没有内存管理,没有文件读写,没有UI调用等等。)

关于ios - 为什么iOS音频捕获回调时间间隔不流畅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61423866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com