ios - 播放长音乐时,AVPlayer 中的搜索时间更快

标签 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)
}

最佳答案

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

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

关于ios - 播放长音乐时,AVPlayer 中的搜索时间更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45425061/

相关文章:

android - 评分栏像代号一的android

rest - 如何从 Google+ REST API 获取流

ios - 如何正确将 .bundle 包含到 Unity3d 包中

ios - 枚举的可打印协议(protocol)在单元测试中不起作用

ios - 观察 Object Swift 4 的变化

ios - 我可以根据分段控制索引通过按钮快速移动屏幕吗?

node.js - 使用 Node.js 流管道进行超时处理

Rust:预期类型 [X],但发现类型 [X]

ios - 命令 bin/sh 失败,退出代码 1 无法识别的参数 :

swift - 在 swift 中创建一个可变的数组数组,每个数组包含一个字典?