播放音频会冻结主线程

时间:2018-01-23 03:47:46

标签: swift multithreading

由于某种原因,当我尝试播放音频时,以下代码会冻结主线程。我已经尝试了从调度到另一个线程的所有内容,但这并没有做太多。我甚至尝试在异步中运行队列,但是当用户在第一个完成加载之前单击另一个音频文件时,我遇到了问题。关于使用哪个线程的任何提示?

let serialQueue = DispatchQueue(label: "queuename")
serialQueue.sync {

    if (jukeboxPlayer.jukebox != nil) {

        if let playingURL = jukeboxPlayer.jukebox?.currentItem?.URL {
            jukeboxPlayer.jukebox?.removeItems(withURL: playingURL)
        }

        jukeboxPlayer.jukebox?.append(item: JukeboxItem(URL: url), loadingAssets: true)

    } else {
        jukeboxPlayer.jukebox = Jukebox(delegate: self, items: [
            JukeboxItem(URL: url),
        ])
    }

    print("3.0")


    jukeboxPlayer.jukebox?.play()

    print("==========Started playing===========")

    self.showPlayer()
}   

也尝试过:

serialQueue.sync {

DispatchQueue.global(qos: .background).async {

这是我使用的框架:

https://github.com/teodorpatras/Jukebox

0 个答案:

没有答案