【问题标题】:iOS: AVPlayer play won't play sometimesiOS:AVPlayer 播放有时无法播放
【发布时间】:2016-12-12 22:21:17
【问题描述】:

所以我有一个使用播放视频的播放器构建的应用,我在 didBecomeActive 和 willResignActive 方法中有一个 [播放器暂停] 和 [播放器播放]。大部分时间都可以正常工作,但是当我打开应用程序并按下主页按钮并再次重复该过程时,即使我看到调用了播放方法,视频也不会播放大约第 8 次。

有人知道会发生什么吗?

【问题讨论】:

  • 分享一些代码(你的委托和方法)以便人们可以帮助你

标签: ios objective-c avplayer


【解决方案1】:

应用可以处于多个非前台状态。在玩之前,检查一下你是否还有player,它是否还有player.currentItem,它的状态是否是AVPlayerStatusReadyToPlay

如果其中任何一个条件不满足,则必须使用您最初用于创建它的代码重新初始化播放器和项目。

这是 player 属性的惰性初始化器的理想选择。

【讨论】:

  • 看起来问题出在视频播放的最后 1 秒内 - 如果我按下主页按钮然后再次打开应用程序 - 我注意到播放器有一个 currentItem,它的速率已设置作为 1.0 并且是 ReadyToPlay 但 Play 方法什么也不做。作为一种解决方法,我添加了一个代码来销毁播放器项目并在用户在视频的最后一秒内按下主页按钮时重新构建它:(
  • 可能发生的情况是玩家状态在比赛中发生变化,而应用程序正在更改活动状态。你实施应用程序会主动辞职吗? developer.apple.com/reference/uikit/uiapplicationdelegate/… 你应该暂停或停止播放。
  • 是的,在 Resign 状态下我暂停播放器并检查状态是否为 ReadyToPlay。
猜你喜欢
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多