ios - AVAudioPlayer 没有快速播放音频
问题描述
var player: AVAudioPlayer! = nil
func playSound() {
guard let url = Bundle.main.url(forResource: "playing", withExtension: "mp3") else { return }
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)
try AVAudioSession.sharedInstance().setActive(true)
player = try AVAudioPlayer(contentsOf: url)
guard let player = player else { return }
player.play()
} catch let error {
print(error.localizedDescription)
}
}
当我执行此代码时,出现以下错误
AudioQueueObject.cpp:372:AudioQueueObject:AudioQueueNew 从 AudioQueueNew 返回 1718449215 io:1 ch,16000 Hz,Float32 客户端:1 ch,16000 Hz,'.mp1'(0x00000000)0 位/通道,0 字节/数据包,384 帧/数据包,0 字节/帧
解决方案
我正在使用此代码播放声音
let sound = NSURL(fileURLWithPath: Bundle.main.path(forResource: "sound", ofType: "mp3")!)
audioPlayer = try! AVAudioPlayer(contentsOf: sound as URL)
audioPlayer.delegate = self
audioPlayer.prepareToPlay()
audioPlayer.play()
我观察到你在玩之前没有准备好你的媒体播放器。您只需要在播放音频之前调用此函数
player.prepareToPlay()