使用AVAudioEngine安排声音

时间:2018-09-23 15:01:56

标签: swift xcode avaudioengine

关于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)

你们将如何解决这个问题?我特别想知道如何在上一个声音结束时立即安排新声音?

非常感谢您的帮助。

0 个答案:

没有答案