iOSでAudioKitを利用して音を入力する機能を実装する際、本体とイヤホンのマイクを考慮する必要がある。
本体とマイクとでは、サンプルレートが異なることがあり、本体は44.1kHz、iPhone同梱のLightningイヤホンは48kHzとなる。
抜き差しは、AVAudioSessionRouteChangeNotification
を利用するのではなく、AVAudioEngineConfigurationChangeNotification
をトリガーにして、AKMicrophone
を再インスタンス化しつなげ直し、AVAudioEngine
を再開させる(AKManager.engine.start()
)。
また、AudioKit
がAVAudioEngineConfigurationChangeNotification
をハンドリングしているので、事前に無効にしておく (AKSettings.enableCategoryChangeHandling = false
)。
More than 3 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme