- Android 现在支持通过永久许可进行离线播放和 Widevine L1。
- 现在,Chrome 会在后台播放 MSE 视频时停用视频轨道,以便优化性能。
- Web 开发者可以自定义可查找范围 MSE 直播视频流
- Chrome 现在支持采用 MSE 的 MP4 中的 FLAC。
- 视频会在设备旋转时进入全屏模式。
适用于 Android 的永久许可
加密媒体扩展 (EME) 中的永久许可表示 必须保存在设备上,以便应用将许可加载到 而无需向服务器发送另一个许可请求。就是这样 EME 支持离线播放。
到目前为止,ChromeOS 是唯一支持永久许可的平台。它 就不再成立了。在设备处于开机状态时通过 EME 播放受保护的内容 现在还支持在 Android 上离线使用
const config = [{
sessionTypes: ['persistent-license'],
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'SW_SECURE_DECODE' // Widevine L3
}]
}];
// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
// User will be able to watch encrypted content while being offline when
// license is stored locally on device and loaded later.
})
.catch(error => {
// Persistent licenses are not supported on this platform yet.
});
您可查看示例媒体 PWA 来自行试用永久许可 然后按以下步骤操作:
- 转到 https://biograf-155113.appspot.com/ttt/episode-2/
- 点击“允许离线阅读”然后等待视频下载完成。
- 开启飞行模式。
- 点击“播放”按钮并开始观看该视频!
适用于 Android 的 Widevine L1
您可能已经知道,所有 Android 设备都必须支持 Widevine 安全等级 3 (Widevine L3)。不过,市面上有很多设备 也支持最高安全级别:Widevine 安全级别 1,其中所有内容处理、加密和控制 在可信执行环境 (TEE) 内执行的警告。
好消息!Chrome(Android 版)现在支持 Widevine L1,以便媒体可以 以最安全的方式播放请注意,Chrome 已支持此功能 操作系统。
const config = [{
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'HW_SECURE_ALL' // Widevine L1
}]
}];
// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
// User will be able to watch encrypted content in the most secure way.
})
.catch(error => {
// Widevine L1 is not supported on this platform yet.
});
Shaka Player,自适应媒体格式(例如 DASH)的 JavaScript 库 和 HLS)提供的演示,供您试用 Widevine L1:
- 转到 https://shaka-player-demo.appspot.com/demo/ 并点击“允许”。
- 选择“Angel One (multicodec、multilingual、Widevine)”。
- 在“视频稳健性”中输入
HW_SECURE_ALL
“配置”字段中 部分。 - 点击“加载”按钮并开始观看该视频!
后台视频轨道优化(仅限 MSE)
Chrome 团队一直致力于寻找新的方法来延长电池续航时间, Chrome 62 也不例外。
现在,当视频在后台播放时,Chrome 会停用视频轨道 (例如,在不可见标签页中)(如果视频使用 Media Source Extensions (MSE))。 如需了解详情,请参阅上一篇文章。
在直播 MSE 流中自定义可寻址范围
您可能已经知道,seekable
属性包含
浏览器可以定位的媒体资源的名称通常,它包含
一个时间范围,从 0 开始,在媒体资源时长结束。如果
但 无法获知持续时间 (例如直播视频流),则时间范围
会不断变化
好消息是您现在可以更有效地自定义
seekable
范围逻辑与 Media Source Extensions (MSE),由
提供或移除与当前行并集的单个可寻道范围
缓冲的范围。它会生成一个同时适用于这两者的单个可寻址范围,
媒体来源时长为 +Infinity
。
在下面的代码中,媒体来源已附加到媒体 且仅包含其 init 片段:
const mediaSource = new MediaSource();
...
mediaSource.duration = +Infinity;
// Seekable time ranges: { }
// Buffered time ranges: { }
mediaSource.setLiveSeekableRange(1 /* start */, 4 /* end */);
// Seekable time ranges: { [1.000, 4.000) }
// Buffered time ranges: { }
// Let's append a media segment that starts at 3 seconds and ends at 6.
mediaSource.sourceBuffers[0].appendBuffer(someData);
// Seekable time ranges: { [1.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }
mediaSource.clearLiveSeekableRange();
// Seekable time ranges: { [0.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }
上面没有涵盖的很多情况,建议你试试看 参阅官方示例,了解缓冲的时间范围和可查找的时间范围对不同指标的反应 MSE 事件。
打算发货 | Chromestatus Tracker | Chromium bug
MSE 的 MP4 格式 FLAC
常规媒体支持无损音频编码格式 FLAC 从 Chrome 56 开始。ISO-BMFF 支持 FLAC(MP4 中的 FLAC) 。现在,您可以在 Chrome 62 中通过媒体来源使用 MP4 格式的 FLAC 文件 扩展 (MSE)。
就信息而言,Firefox 人员开发并实施了 FLAC in MP4 封装规范,BBC 一直在尝试 并将其与 MSE 结合使用。您可以阅读 BBC 的“Delivering Radio 3 Concert” 声音”帖子以了解详情。
检测 MSE 是否支持 MP4 中的 FLAC 的方法如下:
if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
// TODO: Fetch data and feed it to a media source.
}
如需查看完整示例,请参阅我们的官方示例。
打算发货 | Chromestatus Tracker | Chromium bug
当设备旋转时,视频自动进入全屏模式
如果您在视口中播放视频时将设备旋转为横向, 播放将自动切换到全屏模式。将设备旋转到 纵向模式可将视频重新置于窗口模式。请参阅我们以往的文章 。