【发布时间】:2017-07-26 07:39:19
【问题描述】:
我使用 AVPlayer 从 Internet 流式传输 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()
我尝试过的事情:
- 将 player?.play() 移动到观察者,附加到项目的 status 属性
- 玩转属性 preferredForwardBufferDuration 和 preferredPeakBitRate
结果一直是下载整个音频文件,然后才开始播放。
请注意,问题是 - 播放器仅在整个文件下载后才开始播放,而我希望它播放 mp3。
【问题讨论】:
-
尝试使用:player.automaticallyWaitsToMinimizeStalling = false
-
@Suen,是的!它现在在整个加载之前播放。您能否将您的评论更改为答案,以便其他人更容易看到?