美文网首页
AVAudioPlayer坑

AVAudioPlayer坑

作者: Fsn_soul | 来源:发表于2022-09-21 17:18 被阅读0次

AVAudioPlayer初始化和播放耗时比较严重,会阻塞主线程

private func playVoice(fileURL: URL) {
        Loggo.debug(log: "init1")
        self.player = try? AVAudioPlayer.init(contentsOf: fileURL) //370ms
        Loggo.debug(log: "init2")
        self.player?.delegate = self
        Loggo.debug(log: "prepareToPlay1")
        self.player?.prepareToPlay() //70ms
        Loggo.debug(log: "prepareToPlay2")
        Loggo.debug(log: "duration1")
        self.duration = self.player?.duration ?? 0
        Loggo.debug(log: "duration2")
        Loggo.debug(log: "play1")
        self.play() //100ms
        Loggo.debug(log: "play2")
    }

一点播放要等差不多0.5秒才会播放,而且还卡主线程,坑啊,实在要用还是放子线程播放。
空工程差不多在120ms左右。
总结:
机型越差,或者播放前CPU占用率就已经很高,AVAudioPlayer从初始化到播放之间的耗时就越长。反之,越短。
所以放在子线程播放还是有必要的。

相关文章

  • AVAudioPlayer坑

    AVAudioPlayer初始化和播放耗时比较严重,会阻塞主线程 一点播放要等差不多0.5秒才会播放,而且还卡主线...

  • AVAudioPlayer日常坑记录

    AVAudioPlayer必须设为全局对象才能使用.... damn it

  • Note 13 播放器

    音频播放 AVAudioplayer AVAudioplayer 只能播放本地音乐 每个AVAudioplayer...

  • AVAudioPlayer

    AVAudioPlayer The AVAudioPlayer class lets you play sound...

  • AVAudioPlayer、AVPlayer和AVQueuePl

    AVAudioPlayer 简述 AVAudioPlayer是属于 AVFundation.framework 的...

  • iOS之AVAudioPlayer 音频播放

    一,AVAudioPlayer本地音频播放 使用AVAudioPlayer,需要导入AVFoundation.fr...

  • iOS/Swift - AVFoundation(二)音频的播放

    使用AVAudioPlayer播放音频 在AVFoundation中使用AVAudioPlayer来实现音频的播放...

  • AVAudioPlayer

    1.常用属性https://www.jianshu.com/p/589999e53461

  • AVAudioPlayer

    AVAudioPlayer提供了一个简单的从文本或内存中播放音频的方法,它在Mac和iOS 11系统中经常被...

  • AVAudioPlayer

    最近有个播放wav文件的需求很简单的使用了AVAudioPlayer然后发现总时长获取一直有问题换了一个豆瓣的开源...

网友评论

      本文标题:AVAudioPlayer坑

      本文链接:https://www.haomeiwen.com/subject/spowortx.html