【问题标题】:How to play AVPlayerItems immediately如何立即播放 AVPlayerItems
【发布时间】:2017-03-30 10:37:53
【问题描述】:

我正在使用AVPlayer,我通过AVPlayerItem 连接到远程URL。问题是我想立即播放来自URL 的声音,不要让用户等待AVPlayer 缓冲。

问题是,如果远程URL's 资产媒体非常短,那么它根本不会缓冲很长时间,但如果媒体有点长,则需要一段时间。

有没有办法跳过缓冲过程或至少大大缩短缓冲过程?

【问题讨论】:

  • This answer 可能对您的情况有用。
  • 没有根本问题是 AVPlayer(Item) 使用它的属性 .status 当项目准备好播放时返回 AVPlayerItemStatus.readyToPlay 。这个属性是一个 get only 并且基于 Apple 的一些算法。
  • 我通过添加一个计时器来“解决”它,该计时器在 0.5 秒后使用 AVPlayer.playImmediately(atRate: 1) 播放音频。这使它更具响应性
  • 虽然我需要它比这更快,所以任何帮助都是有用的。

标签: swift swift3 avfoundation avplayer avplayeritem


【解决方案1】:

斯威夫特 5

您只需要使用automaticallyWaitsToMinimizeStalling 属性。

player.automaticallyWaitsToMinimizeStalling = false
player.playImmediately(atRate: 1.0)

【讨论】:

  • 尚未测试,但我会将其标记为已回答,因为这似乎是正确的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 1970-01-01
  • 2012-03-24
  • 1970-01-01
  • 2022-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多