提问人:vptest 提问时间:10/6/2020 更新时间:6/26/2022 访问量:1425
Microsoft Edge 对 canPlayType 上的 AV1 的错误支持
Microsoft Edge false support of AV1 on canPlayType
问:
Microsoft Edge 85 具有 AV1 视频编解码器支持的误报指示。
像这样的检查返回“可能”,这通常表示视频编解码器可以安全使用。
videoElement.canPlayType('video/webm; codecs="av01.0.05M.08"')
放置 AV1 源元素会导致 Edge 选择 AV1 而不是其他编解码器,并且无法播放它。
<video playsinline loop autoplay muted>
<source type="video/webm; codecs='av01.0.05M.08'" src="av1.webm">
<source type="video/webm; codecs='vp9'" src="vp9.webm">
<source type="video/mp4; codecs='avc1.64001f'" src="avc.mp4">
</video>
有没有其他方法可以更有效地检测编解码器支持,而不会出现上述误报?
答:
0赞
phip
6/26/2022
#1
我听从了 @Deepak-MSFT 的建议,使用 JS 替换了 Edge 上的视频源。
我已经确认这在 Window 103 21H2 上的 Edge 10 中有效。 浏览器仍会请求无法播放的 AV1 WebM 文件,但随后会切换并播放 AVC MP4 文件。
// Target Edge on Windows with UserAgent and Platform strings
if (
window.navigator.userAgent.toLowerCase().includes("edg") &&
window.navigator.platform === "Win32"
) {
// Select the video element
const video = document.querySelector("video");
// Select the playable source file and set video src
video.src = video
.querySelector("source[type='video/mp4']")
.getAttribute("src");
}
这假定您只有一个 的源元素。查询选择器可以更具体,例如选择属性,以针对非常具体的来源。另一种选择是将属性添加到源元素,并以这种方式定位所需的源。type="video/mp4"
codecs
id
评论