Chrome 61 中的媒体更新

François Beaufort
François Beaufort

后台视频轨道优化(仅限 MSE)

为了延长电池续航时间,如果视频使用媒体来源扩展 (MSE),当视频在后台(例如,在不可见的标签页中)播放时,Chrome 会停用视频轨道。

您可以转到 chrome://media-internals 页面并过滤出“info”属性来检查这些更改。当包含正在播放的视频的标签页变为非活跃状态时,您会看到类似于 Selected video track: [] 的消息,指示视频轨道已停用。该标签页再次变为活动状态后,视频轨道会自动重新启用。

chrome://media-internals 页面中的日志面板
chrome://media-internals 页面中的日志面板

如果您想了解发生了什么,可以参考下面的 JavaScript 代码段,了解 Chrome 的大致幕后工作。

var video = document.querySelector('video');
var selectedVideoTrackIndex;

document.addEventListener('visibilitychange', function() {
  if (document.hidden) {
    // Disable video track when page is hidden.
    selectedVideoTrackIndex = video.videoTracks.selectedIndex;
    video.videoTracks[selectedVideoTrackIndex].selected = false;
  } else {
    // Re-enable video track when page is not hidden anymore.
    video.videoTracks[selectedVideoTrackIndex].selected = true;
  }
});

您可能希望在视频轨道停用后降低视频流的画质。这就像使用 Page Visibility API 一样简单(如上所述),来检测网页何时被隐藏了。

以下是一些限制:

  • 此优化仅适用于 keyframe 距离小于 5 秒的视频。
  • 如果视频不包含任何音轨,在后台播放时,视频将自动暂停。

Chromium 错误

设备旋转后自动全屏显示视频

视频在视口中播放时,如果您将设备旋转为横屏模式,播放模式将自动切换到全屏模式。将设备旋转为纵向可使视频恢复为窗口模式。

请注意,您可以自行手动实现此行为。(请参阅移动网站视频播放一文)。

设备旋转后自动全屏显示视频

这种神奇的行为仅在以下情况下才会发生:

  • 设备是 Android 手机(而非平板电脑)
  • 用户的屏幕方向设为“自动旋转”
  • 视频尺寸至少为 200x200 像素
  • 视频使用了原生控件
  • 视频目前正在播放
  • 至少 75% 的视频可见(在屏幕上)
  • 屏幕方向旋转 90 度(而不是 180 度)
  • 尚无全屏元素
  • 屏幕未使用 Screen Orientation API 锁定

Chromium 错误