使用 AVPlayer 进行流式传输很慢

Vla*_*tko 3 ios avplayer swift

我使用 AVPlayer 从互联网流式传输 mp3 文件,它的工作速度非常慢。使用分析器我发现,它首先下载整个文件,然后开始播放。有什么解决方法吗?

现在,我正在使用此代码

if let player = player {
    NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)

    let item = AVPlayerItem(url: url)

    player.replaceCurrentItem(with: item)
} else {
    player = AVPlayer(url: url)
}
player?.play()
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情:

  • 将 player?.play() 移动到观察者,附加到项目的状态属性
  • 使用属性preferredForwardBufferDurationpreferredPeakBitRate

结果一直是下载整个音频文件,然后才开始播放。

请注意,问题是 - 播放器仅在整个文件下载后才开始播放,而我希望它流式传输 mp3。

Sue*_*uen 6

要立即播放,您可以尝试设置

player.automaticallyWaitsToMinimizeStalling = false
Run Code Online (Sandbox Code Playgroud)

  • 对我不起作用,AVPlayer 仍然先下载整个视频,然后开始播放:( (2认同)