如何解决Chrome错误地检测到是否可以播放HLS视频媒体
我试图以编程方式根据其URL查找是否可以播放某些媒体。
基于浏览器测试,HLS将使用videoJs播放器视频库在我的Chrome浏览器上正常播放,但是CanIUse表示这不是我的第一个困惑。
然后我通过此JavaScript运行它...
使用此npm软件包获取mime类型
https://www.npmjs.com/package/mime-types
var mime = require('mime-types');
// get the extension of the file
var mimeType = mime.contentType(file.split('.').pop());
// returns 'application/vnd.apple.mpegurl'
var video = document.createElement('video');
console.log(Boolean(video.canPlayType(mimeType)));
哪个也会返回false,但是确实会播放,这让我困惑于这种情况的发生,是否有人对这种情况的发生有任何想法,或者如何正确检测视频是否会播放?>
解决方法
“我可以使用HLS”页面列出了HTML5 video
标签的兼容性列表,这表示它检查浏览器是否对该格式具有本地支持。例如,除MacOS上的Safari以外,大多数桌面浏览器都无法原生播放HLS。
这就是为什么对于Apple HLS和MPEG-DASH之类的格式,您需要一个JavaScript播放器,该播放器将特定格式转换为video
元素可以本地处理的格式(重新包装流而无需重新编码)。
关于编解码器,您可能会寻求最低的公分母,例如带有AAC的H.264基准,或者通过后备机制提供针对目标设备量身定制的不同格式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。