- 为了优化性能,现在 Chrome 会在 MSE 视频在后台播放时停用视频轨道。
- 旋转设备后,视频会进入全屏模式。
后台视频轨道优化(仅限 MSE)
为了延长电池续航时间,如果视频使用媒体来源扩展 (MSE),那么当视频在后台(例如,在不可见的标签页中)播放时,Chrome 会停用视频轨道。
您可以前往 chrome://media-internals
页面,然后过滤“info”属性,以检查这些更改。当包含正在播放的视频的标签页变为非活动状态时,您会看到类似于 Selected video track: []
的消息,指示视频轨道已停用。如果该标签页再次变为活动状态,视频轨道会自动重新启用。
如果您想了解发生的情况,可以参考下面的 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 一样简单(如上所示)。
以下是一些限制:
- 此优化仅适用于关键帧距离小于 5 秒的视频。
- 如果视频不包含任何音轨,在后台播放时,视频将自动暂停。
设备旋转时自动全屏显示视频
当视频在视口中播放时,如果您将设备旋转为横向,播放功能将自动切换到全屏模式。将设备旋转为纵向可使视频恢复到窗口模式。
请注意,您可以自行手动实现此行为。(请参阅移动网站视频播放一文)。
这种神奇的行为仅在以下情况下才会发生:
- 设备是 Android 手机(而非平板电脑)
- 用户的屏幕方向设为“自动旋转”
- 视频尺寸至少为 200x200 像素
- 视频使用原生控件
- 视频当前正在播放
- 视频至少有 75% 的内容是可见的(在屏幕上)
- 屏幕方向旋转 90 度(而非 180 度)
- 尚无全屏元素
- 未使用 Screen Orientation API 锁定屏幕