忘れないようにメモ。
現象
色々なサイトのサンプルソースを元に、録音と再生するアプリを作成したところ、
再生した音声が異常に小さかった
環境
xcode: 10.1
swift: 4.2
修正前
let session = AVAudioSession.sharedInstance()
do {
//try session.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .defaultToSpeaker)
try session.setCategory(AVAudioSession.Category.playAndRecord, mode: .default)
try session.setActive(true)
(省略)
}
catch let error {
// failed to record!
}
修正後
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSession.Category.playAndRecord, mode: .default, options: .defaultToSpeaker)
try session.setActive(true)
(省略)
}
catch let error {
// failed to record!
}
参考にしたサイトの情報だと、4.2に対応していなかったみたいで、関数の引数を変えたところ必要な引数が漏れてしまったことが原因だった。
他のアプローチ
session.setInputGain(1.0)
と設定するといい、といった情報もあったけれど、
公式の使い方を参照し、isInputGainSettableでチェックしてから使おうねってあったのでやったところ、、、
if session.isInputGainSettable {
try session.setInputGain(1.0)
} else { print("設定できないってどういうことだよ!") }
見事撃沈した。
参考
VoiceRecorder
[iOS]ボイスレコーダーアプリを作る
マイクにアクセスするとアプリ全体の音量が小さくなります