AVAudioEngine
ユーザーのマイクを使用して音声を録音したいと思います。既に動作するサンプルがありますが、必要な出力の形式を指定する方法がわかりません...
私の要件は、AVAudioPCMBuffer
私が話すように、それが現在行っていることを必要とすることです...
トランスコーディングを行う別のノードを追加する必要がありますか? その問題に関する多くのドキュメント/サンプルが見つかりません...
また、オーディオ関連の初心者でもあります。NSData
最大サンプルレートが 16000 の PCM-16bit が必要であることはわかっています (8000 の方がよいでしょう)。
ここに私の作業サンプルがあります:
private var audioEngine = AVAudioEngine()
func startRecording() {
let format = audioEngine.inputNode!.inputFormatForBus(bus)
audioEngine.inputNode!.installTapOnBus(bus, bufferSize: 1024, format: format) { (buffer: AVAudioPCMBuffer, time:AVAudioTime) -> Void in
let audioFormat = PCMBuffer.format
print("\(audioFormat)")
}
audioEngine.prepare()
do {
try audioEngine.start()
} catch { /* Imagine some super awesome error handling here */ }
}
形式を変更して「言う」としたら
let format = AVAudioFormat(commonFormat: AVAudioCommonFormat.PCMFormatInt16, sampleRate: 8000.0, channels: 1, interleaved: false)
次に、サンプルレートが hwInput と同じである必要があるというエラーが生成される場合...
どんな助けでも大歓迎です!!!
編集:見つけAVAudioConverter
たばかりですが、iOS8にも対応する必要があります...