首页 > 解决方案 > 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 字节/帧

标签: iosswiftaudiomp3avaudioplayer

解决方案


我正在使用此代码播放声音

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()

推荐阅读