gpt4 book ai didi

iOS:音频单元:设置任意采样率

转载 作者:可可西里 更新时间:2023-11-01 04:54:57 26 4
gpt4 key购买 nike

我可以设置任何我想要的采样率吗?有什么限制?

硬件采样率如何?一旦设置好,单元之间传递的内部采样率有什么限制?

我猜测实际的硬件速率可能必须是 44.1KHz 的位移位,并且任何内部采样率必须是该原始值的向下位移位(例如 22.1KHz、11.05KHz)。这很近吗?

据我了解,
1. 我设置 Audio Session 的硬件采样率。
2. 系统设置采样率尽可能接近我指定的采样率。
3. 然后我在 Audio Session 中查询我设置的相同属性,这将给我它使用的实际采样率

在音频单元级别,特别是 RemoteIO 单元,文档指出该单元连接到硬件的两个点(即麦克风(输入)总线的输入范围和扬声器(输出)的输出范围) 总线),采样率可以检索设置

但是,我在构造远程 I/O 单元时尝试访问此值,但它返回零。我想也许我需要先启动 该单元,然后才能从它的连接中获取有意义的数据(启动它的行为可能会创建连接)。因此,这里的解决方案似乎是从 Audio Session 中获取采样率并按照上述方法使用它。

需要标签:音频单元

最佳答案

既然您提到了 AudioSessions,我假设您使用的是 iOS。所以你会想要:

  1. 检查音频输入硬件。 AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable...)

  2. 将 Audio Session 设置为“播放和录制”模式。 AudioSessionSetProperty (kAudioSessionProperty_AudioCategory...)kAudioSessionCategory_PlayAndRecord

  3. 激活 session 。 AudioSessionSetActive()

  4. 获取首选采样率。 AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate)

然后您可以使用正确的采样率设置您的音频处理链。

至于播放音频,您可以使用任何采样率,API 会将其转换为硬件的输出采样率。显然,如果您使用非常高的采样率,则会消耗大量内存和 CPU 时间。

关于iOS:音频单元:设置任意采样率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4162556/

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