【发布时间】:2018-11-06 07:59:45
【问题描述】:
当我从互联网加载视频(10-40MB 大)时,我无法提供流畅的播放体验。
我的 AVPlayer 要么加载整个视频然后播放它,要么播放 1 秒、缓冲然后停止播放。
我尝试了无穷无尽的库、缓冲区观察器方法和教程。似乎没有任何帮助。
.
.
.
self.makeLoaderVisible()
let playerItem = AVPlayerItem(url: url)
playerItem.addObserver(self, forKeyPath: "playbackBufferEmpty", options: .new, context: nil)
playerItem.addObserver(self, forKeyPath: "playbackLikelyToKeepUp", options: .new, context: nil)
playerItem.addObserver(self, forKeyPath: "playbackBufferFull", options: .new, context: nil)
avPlayer?.replaceCurrentItem(with: playerItem)
avPlayer?.automaticallyWaitsToMinimizeStalling = false
avPlayer?.playImmediately(atRate: 0)
// avPlayer?.play()
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if object is AVPlayerItem {
switch keyPath! {
case "playbackBufferEmpty":
// Show loader
makeLoaderVisible()
case "playbackLikelyToKeepUp":
// Hide loader
hideLoader()
case "playbackBufferFull":
// Hide loader
hideLoader()
default:
return
}
}
}
【问题讨论】:
-
github.com/delannoyk/AudioPlayer 可能会有所帮助...
-
@dfi :- 你找到解决办法了吗
标签: ios swift avfoundation avplayer avkit