Microsoft Edge HLS 支持和其他浏览器
Microsoft Edge HLS support and other browsers
Microsoft Edge 支持 HLS,但有些浏览器不支持(例如 Chrome)。我读到要测试 HLS 的可用性,您必须以这种方式测试 video.src:
videoPromise = video.play()
if(videoPromise !== undefined){
// There's support
} else {
// There's no support
}
此代码用于在不支持 HLS 的情况下提供替代方案,但在 Edge 中使用此代码时,video.play
returns undefined
并因此中断其他预期调用。
一种可能的替代方法是使用 video.onplay
和 video.onplaying
在所有浏览器中实际查找视频播放,并确保它播放 HLS 视频。
是否有更好的方法在 Edge 中验证这一点?
你真的不想这样做,因为最新的规范有 play()
return 一个承诺,它永远不会是真实的(一个被拒绝的承诺,表明缺乏的支持,不是未定义的,因此仍然会通过你的 if 语句)。
在 canPlayType
中实际上有一个内置的方法来检查视频类型是否受支持。这是基于任何媒体元素(即
var supported = document.createElement('video').canPlayType('application/x-mpegURL')
if (supported) {
// There's support
} else {
// There's no support
}
Microsoft Edge 支持 HLS,但有些浏览器不支持(例如 Chrome)。我读到要测试 HLS 的可用性,您必须以这种方式测试 video.src:
videoPromise = video.play()
if(videoPromise !== undefined){
// There's support
} else {
// There's no support
}
此代码用于在不支持 HLS 的情况下提供替代方案,但在 Edge 中使用此代码时,video.play
returns undefined
并因此中断其他预期调用。
一种可能的替代方法是使用 video.onplay
和 video.onplaying
在所有浏览器中实际查找视频播放,并确保它播放 HLS 视频。
是否有更好的方法在 Edge 中验证这一点?
你真的不想这样做,因为最新的规范有 play()
return 一个承诺,它永远不会是真实的(一个被拒绝的承诺,表明缺乏的支持,不是未定义的,因此仍然会通过你的 if 语句)。
在 canPlayType
中实际上有一个内置的方法来检查视频类型是否受支持。这是基于任何媒体元素(即
var supported = document.createElement('video').canPlayType('application/x-mpegURL')
if (supported) {
// There's support
} else {
// There's no support
}