关于AVAudioEngine,我有一些概念性问题。我发现Apple开发人员文档相当难以理解,尤其是对于刚接触音频开发的人。
我的目标实际上很简单。我想一个接一个地播放一些声音。新的声音应在上一个声音结束时立即开始播放。
我为每个音频文件创建了一个缓冲区和播放器,但是稍后要精确启动一个新的播放器相当困难。它还考虑过一起开始所有玩家,然后安排下一个我想播放的声音。
// Create players in a loop
let audioPlayer = AVAudioPlayerNode()
self.audioEngine.attach(audioPlayer)
self.audioEngine.connect(audioPlayer, to: self.mixer, format: nil)
self.audioPlayers.append(audioPlayer)
let audioFile = try! AVAudioFile(forReading: url.absoluteURL)
let audioFileBuffer = AVAudioPCMBuffer(pcmFormat: audioFile.processingFormat, frameCapacity: AVAudioFrameCount(audioFile.length))
try! audioFile.read(into: audioFileBuffer!)
audioPlayer.scheduleBuffer(audioFileBuffer!, at: nil, options: [], completionHandler: nil)
// Start playback later on
let audioPlayer = self.audioPlayers[0]
audioPlayer.play(at: nil)
你们将如何解决这个问题?我特别想知道如何在上一个声音结束时立即安排新声音?
非常感谢您的帮助。