将kAudioUnitSubType_VoiceProcessingIO
与AVAudioPlayer
结合使用时,会导致音频播放音量很低。切换到kAudioUnitSubType_RemoteIO
时,播放音量再次达到适当的高水平。
这取决于订单的3个步骤
A
。配置VoiceProcessingIO音频单元B
。创建音频播放器C
。播放音频播放器音量在这三个步骤的顺序上有很大差异。
这是一个示例存储库(_不要奇怪为什么它叫audiokit,它是我使用不同音频sdks遇到的问题的集合,那就是一个集合存储库。但是这个特定的分支未使用AudioKit)
https://github.com/mlostekk/AudioKitSampleRate/tree/issue/outputVolumeNoAudiokit(分支outputVolumeNoAudiokit
)
在我们的应用中,常规情况用按钮VP3
表示。首先设置语音处理输入回调,然后在以后创建音频播放器并进行播放。但是这种情况导致产量很低
订单为A -> B -> C
按钮VP1
(B -> C -> A
)导致音量很大。
按钮VP2
(B -> A -> C
)的音量也非常大
按钮NoVP1
也使用A -> B -> C
,这是正常情况,但实际上这里的语音处理已禁用,但是我们需要它。
有人能解释为什么这样的情况吗?以及如何解决VP3
方案具有正常/不太低的输出量
这似乎仅在较新的设备( iphone7及更高版本)上发生,即使在较旧的设备上也可以听到音量差异。较新的版本更加激进
模式是.spokenAudio
,.default
还是.measurement
都不重要。它似乎仅取决于kAudioUnitSubType_VoiceProcessingIO
。