P i*_*P i 5 core-audio sample-rate audiounit ios
我可以设置我想要的任何采样率吗?有什么限制?
硬件采样率如何?一旦确定,单位之间传递的内部采样率有什么限制?
我猜测实际的硬件速率可能必须是44.1KHz的一些位移,并且任何内部采样率必须是该原始值的向下位移(例如22.1KHz,11.05KHz).这很接近吗?
据我了解,
1.我从音频会话中设置硬件采样率.
2. 系统会将采样率设置为尽可能接近我指定的采样率.
3.然后我查询音频会话以查找我设置的相同属性,这将为我提供它正在使用的实际采样率
在音频单元级别,特别是RemoteIO单元,文档说明单元连接到硬件的两个点(即麦克风(输入)总线的输入范围和扬声器(输出)总线的输出范围) ,可以检索采样率但不 设置.
但是,我尝试在构建远程I/O单元时访问此值,并返回零.我想也许我需要启动该单元才能从其连接中获取有意义的数据(启动它的行为可能会创建连接).所以这里的解决方案似乎是从音频会话中获取采样率并使用它,如上所述.
需要标签:音频单元
自从你提到 AudioSessions 以来,我假设你使用的是 iOS。所以你会想要:
检查音频输入硬件。AudioSessionGetProperty (kAudioSessionProperty_AudioInputAvailable...)
将音频会话设置为“播放和录制”模式。AudioSessionSetProperty (kAudioSessionProperty_AudioCategory...)和kAudioSessionCategory_PlayAndRecord
激活会话。AudioSessionSetActive()
获得首选的采样率。AudioSessionGetProperty (kAudioSessionProperty_CurrentHardwareSampleRate)
然后您可以使用正确的采样率设置音频处理链。
至于播放音频,您可以使用任何采样率,API 应将其转换为硬件的输出采样率。显然,如果您使用非常高的采样率,则会消耗大量内存和 CPU 时间。
| 归档时间: |
|
| 查看次数: |
4126 次 |
| 最近记录: |