0
나는 AVAudioEngine
을 사용하고 있는데, 출력하려면 .pcmFormatInt16
을 16000Hz에서 얻으려고하고 있지만 작동시키지 못합니다. 여기에 내가 뭘하는지입니다 : 위에서 언급 한 바와 같이AVAudioEngine에서 마이크에서 PCM-16을 출력하려면 어떻게해야합니까?
let audioEngine = AVAudioEngine()
let mixer = AVAudioMixerNode()
let input = self.audioEngine.inputNode!
audioEngine.attach(mixer)
audioEngine.connect(input, to: mixer, format: input.outputFormat(forBus: 0))
let recordingFormat = AVAudioFormat(commonFormat: .pcmFormatInt16, sampleRate: 16000.0, channels: 1, interleaved: true)
mixer.installTap(onBus: 0, bufferSize: 2048, format: recordingFormat) { [weak self] (buffer, _) in
// buffer here is all 0's!
}
self.audioEngine.prepare()
try! self.audioEngine.start()
, 내가 버퍼에 액세스 할 때 항상 모든 0, 침묵이다.
같은 샘플 속도를 변경하는 AVAudioConverter을 사용할 수 있지만 모든 형식이 그런 식으로 지원되는 것은 아닙니다. – dave234
연결 속도로 샘플 속도를 변경하면 샘플 속도가 변경된 것처럼 보이지만 사운드에는 잡음이 있습니다. 예를 들어, iPhone6s에서 샘플 속도 48000을 44100으로 변경하면 버퍼 사운드가 레코드보다 느립니다. – woosiki