作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要确定我的RemoteIO回调何时更改缓冲区大小。在iOS 7之前,我们可以先使用AudioSessionAddPropertyListener
添加一个 session 属性侦听器,然后再使用kAudioSessionProperty_PreferredHardwareIOBufferDuration
属性。现在已弃用。有替代品吗? AVAudioSession
旨在符合KVO要求,但不适用于IOBufferDuration
或preferredIOBufferDuration
属性。
这里的替代品是什么?
最佳答案
在已知采样率下,缓冲区持续时间以frameCount的形式(与回调缓冲区中的样本数量成比例)提供给RemoteIO回调。任何其他通知都将与此回调信息异步,因此与实际更改相比可能会在错误的时间接收到(这发生在音频线程中,而不是在UI主运行循环中)。
但是您的音频回调可以更改某些可见状态(全局或在参数struct中),在缓冲区持续时间更新后,任何其他轮询线程或使用者线程都可以找到该可见状态。
关于ios - 不建议使用IOBufferDuration的AudioSessionAddPropertyListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43553318/
好吧,我显然错过了一些重要的部分。我正在尝试通过网络实现低延迟音频,我的基本帧是 10 毫秒。我原以为这不会有问题。我的目标手机是 iPhone X 扬声器,因此我的硬件采样率应锁定为 48000Hz
我是一名优秀的程序员,十分优秀!