播放器恢复/活动恢复后 Youtube 控件(播放/暂停)不起作用

Posted

技术标签:

【中文标题】播放器恢复/活动恢复后 Youtube 控件(播放/暂停)不起作用【英文标题】:Youtube controls (play/pause) don't work after player is restored/activity is resumed 【发布时间】:2016-05-03 09:44:37 【问题描述】:

我有一个包含YouTubePlayerSupportFragment 的活动来播放 youtube 视频。

youtube 播放器的样式设置为CHROMELESS(只有视频,没有控件),播放由我自己在播放器视图之外的自定义播放/暂停按钮控制。在我出于某种原因离开视频活动然后再回来之前,一切都按预期工作。

在离开活动时,视频会暂停 - 正如预期的那样 - 但在返回到它之后,请求播放器到 player.play() 什么都不做。没有错误也没有异常,它什么也不做。 Play() 只会在我加载新视频后再次工作..

我尝试改用YouTubePlayerFragment,但结果是一样的。但是,当使用DEFAULT 样式时,按默认播放按钮显然会从先前的位置重新加载视频(我看到缓冲区被刷新)并按预期工作。这让我相信他们以某种方式直接在他们的 UI 控件代码上而不是在播放器 API 上处理它。..

我可以在 SDK 的自定义控件示例上重现此问题,只需启动一个视频,按下最近的键并返回它,所以我认为可以安全地假设这是一个错误.. 有没有人能够解决这个问题?有什么方法可以检测到视频需要重新加载,而这还没有解决?

信息:我正在使用 youtube 的 android player API v1.2.2 和最新的 youtube 应用程序 v10.49.59

【问题讨论】:

【参考方案1】:

几个小时后,我找到的唯一解决方案是在暂停事件中保存视频位置,并在 PostResume 事件(当 YouTubeFragment 恢复时)重新加载视频 (player.loadVideo)。但我不知道这是否是唯一/最好的解决方案。

【讨论】:

以上是关于播放器恢复/活动恢复后 Youtube 控件(播放/暂停)不起作用的主要内容,如果未能解决你的问题,请参考以下文章

ExoPlayer onResume() 恢复播放状态

使用 AVAudioPlayer 播放声音后恢复背景音频

播放自己的音频后恢复 Spotify

在 AVPlayerItemFailedToPlayToEndTime 后恢复播放实时视频流

AVPlayer,长时间停顿后恢复 = 故障

恢复应用程序后 MediaElement 不播放