1

我有一个单声道音频文件。我正在打开并尝试使用以下代码应用增益:

let inputFile = try! AVAudioFile(forReading: url)
let settings = inputFile.fileFormat.settings
let outputFile = try! AVAudioFile(forWriting: outputURL, settings: settings)
let sourceBuffer = try! AVAudioPCMBuffer(file: inputFile)

let engine = AudioEngine()
let player = AudioPlayer()
let compressor = Compressor(player)
compressor.masterGain = AUValue(gain)

engine.output = compressor

compressor.start()

do {
    try engine.start()
    player.start()
    player.scheduleBuffer(sourceBuffer!, at: nil, options: [], completionHandler: nil)
    try engine.renderToFile(outputFile, duration: inputFile.duration)
} catch {
    completion(.failure(error))
}

player.scheduleBuffer崩溃,但有以下异常:

*** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: _outputFormat.channelCount == buffer.format.channelCount'
terminating with uncaught exception of type NSException

但是如何设置正确的通道数?

我已经尝试过Settings.audioFormat = inputFile.fileFormatSettings.audioFormat = sourceBuffer!.format在初始化AudioEngine. 结果相同。

我很感激任何帮助。谢谢。

4

0 回答 0