流式传输长音乐时,在AVPlayer中寻找时间更快

时间:2017-07-31 20:50:14

标签: ios swift stream avplayer avaudioplayer

我使用Jukebox库来传输远程音乐。我流的音乐长达60分钟。当我试图寻找它们时,玩起来需要30-40秒。我更改了库中的一些代码,使它们第一次立即播放。它起作用了,但它并没有加速寻求。

 public func seek(toSecond second: Int, shouldPlay: Bool = false) {
    guard let player = player, let item = currentItem else {return}

    player.seek(to: CMTimeMake(Int64(second), 1))
    item.update()
    if shouldPlay {
        if #available(iOS 10.0, *) {
            player.playImmediately(atRate: 1.0)
        } else {
            player.play()
        }
        if state != .playing {
            state = .playing
        }
    }
    delegate?.jukeboxPlaybackProgressDidChange(self)
}

1 个答案:

答案 0 :(得分:0)

从评论中,我发现每次滑动滑块时都会调用函数。例如,当您将滑块从0移动到50时,它被调用50次。因此,您需要创建一个事件处理程序,看起来用户会停止滑动。

您可以从How to detect the end of slider drag回答中获得答案。