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中的AudioConverterNew返回了1718449215 io:1 ch,16000 Hz,浮点32 客户端: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()