我试图在 AVAudioRecorder 中设置 Opus (kAudioFormatOpus) 的比特率,但它不起作用。比特率始终在 20kb/s 左右。
let recordSettings =
[AVEncoderBitRateKey: 32000,
AVFormatIDKey: kAudioFormatOpus,
AVSampleRateKey: 16000.0] as [String: Any]
let recordingFormat = AVAudioFormat(settings: recordSettings)!
let recorder = try! AVAudioRecorder(url: url, format: recordingFormat)
recorder.record()
我是不是做错了什么?
最佳答案
事实证明,在这种情况下初始化 AVAudioRecorder 的正确方法应该是:
let recordSettings =
[AVEncoderBitRateKey: 32000,
AVFormatIDKey: kAudioFormatOpus,
AVSampleRateKey: 16000.0] as [String: Any]
let recorder = try! AVAudioRecorder(url: url, settings: recordSettings)
recorder.record()
不要尝试先初始化 AVAudioFormat 然后将其传递给 AVAudioRecorder。 而是直接使用设置调用 init:
AVAudioRecorder(url: url, settings: recordSettings)
关于ios - 如何在 AVAudioRecorder 中控制 Opus 比特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55722828/