我想录制一些音频AVAudioEngine和用户麦克风.我已经有了一个工作样本,但是无法弄清楚如何指定我想要的输出格式...
我的要求是,我需要AVAudioPCMBuffer我现在说的话......
我是否需要添加一个可以进行转码的单独节点?我找不到关于那个问题的文档/样本......
在Audio-Stuff方面,我也是一个菜鸟.我知道我想要NSData包含PCM-16bit,最大采样率为16000(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 */ }
}
Run Code Online (Sandbox Code Playgroud)
如果我改变格式让'说'
let format = AVAudioFormat(commonFormat: AVAudioCommonFormat.PCMFormatInt16, sampleRate: 8000.0, channels: 1, interleaved: false)
Run Code Online (Sandbox Code Playgroud)
然后如果会产生一个错误,说样本速率需要与hwInput相同...
很感谢任何形式的帮助!!!
编辑:我刚刚发现,AVAudioConverter但我需要兼容iOS8 ...