AVPlayerItem playerItemWithURL有点慢,有一个非常好的smoth滚动

时间:2018-02-01 18:47:21

标签: ios performance avplayer avplayeritem

在滚动我的应用Feed时,我会在AVPlayer中加载一些视频。问题是AVPlayerItem playerItemWithUrlAVPlayer playerWithPlayerItem有点慢(大约16毫秒),因此它会在我的应用中产生帧丢失。他们以任何方式加快速度吗?也许我可以在后台线程中调用这些函数?

在我用来创建播放器的代码下面:

  FPlayerItem := TAVPlayerItem.Wrap(TAVPlayerItem.OCClass.playerItemWithURL(aURL)); 
  FPlayer := TAVPlayer.Wrap(TAVPlayer.OCClass.playerWithPlayerItem(FPlayerItem)); 

1 个答案:

答案 0 :(得分:0)

AVAsynchronousKeyValueLoading内播放该项目 它明确指出:

  

您可以实施无需使用资产或资产跟踪的方法   阻止调用线程。

逻辑上,理解:

let asset = AVAsset(url: url)
let keys: [String] = ["playable"]
asset.loadValuesAsynchronously(forKeys: keys) {
DispatchQueue.main.async {         
      let item = AVPlayerItem(asset: asset)
      let player = AVPlayer(playerItem: item)
      player.play()
      }
}  

This answer可以帮助您更好地理解它。