可以尝试使用AVAudioFile.init(forReading:)来初始化AVAudioFile,并从URL读取音频文件数据。
示例代码:
let url = Bundle.main.url(forResource: "audioFile", withExtension: "mp3")!
do {
let audioFile = try AVAudioFile(forReading: url)
// 将AVAudioFile与AVAudioEngine连接
let playerNode = AVAudioPlayerNode()
engine.attach(playerNode)
engine.connect(playerNode, to: engine.mainMixerNode, format: audioFile.processingFormat)
// 播放音频
playerNode.scheduleFile(audioFile, at: nil, completionHandler: nil)
playerNode.play()
} catch let error {
print("Error: \(error)")
}
在上述示例中,我们尝试从Bundle中获取名为“audioFile.mp3”的音频文件URL,并使用AVAudioFile.init(forReading:)方法初始化AVAudioFile对象。接下来,我们将AVAudioFile与AVAudioEngine连接,并为AVAudioPlayerNode安装AVAudioFile以播放音频。如果初始化AVAudioFile时发生错误,则将其记录到控制台上。