AVAudioUnitSampler在耳机路由改变后生成正弦波,iOS 11 iPhone

时间:2017-11-07 14:22:52

标签: ios iphone audiounit avaudioengine audiokit

使用AVAudioUnitSampler时,我在iPhone(iOS 11)上遇到了一个奇怪的问题。

让我说我有一个用钢琴声音初始化的AVAudioUnitSampler。因此,每次连接或断开耳机时,我都会听到钢琴声 plus 添加了正弦波音,随着连接/断开耳机的次数越来越大。

所以,对我来说,感觉好像每次耳机插入/拔出时,一个新的音频单元采样器将内部连接到声音输出(并且,因为它是未初始化的,它只会产生正弦波音调)。

以下课程已经显示了问题。请注意,我使用AudioKit来处理MIDI信号并触发采样器(虽然在这一端看起来一切正常,即。class LoginActivity : BaseActivity(), LoginNavigator { @Inject lateinit var loginViewModel: LoginViewModel override fun onCreate(savedInstanceState: Bundle?) { performDependencyInjection() super.onCreate(savedInstanceState) val activityLoginBinding: ActivityLoginBinding = DataBindingUtil.setContentView<ActivityLoginBinding>(this, R.layout.activity_login) activityLoginBinding.loginViewModel = loginViewModel loginViewModel.mNavigator = this } startNote()被正确调用):

stopNote()

我已经分叉了AudioKit并用minimal project替换了HelloWorld示例,我可以用它来重现这个问题。

此外,我无法在iOS 9.3和11下在iPad上重现此问题,因此这可能是特定于iPhone的问题。

有关如何继续调试的任何帮助或建议都非常受欢迎,我对此非常困惑,而且我并不是iOS音频开发方面的专家。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可能会尝试检查引擎是否在handleRouteChange中启动,然后如果它不是刚启动它就会反弹。如果有效,请告诉我们。