HLS直播流在Safari能播,Chrome却黑屏是怎么回事?
我用 hls.js 播 HLS 直播流,在 Safari 上一切正常,但在 Chrome 里视频区域一直是黑屏,控制台也没报错。试过加 video.muted = true 和用户手势触发播放,还是不行。
我的初始化代码是这样的:
if (Hls.isSupported()) {
const hls = new Hls();
hls.loadSource('https://example.com/live.m3u8');
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED, () => {
video.play();
});
}
首先在初始化时加上
hls.startLoad(),确保流能开始加载。然后在MANIFEST_PARSED事件里,先检查视频是否被静音了再调用 play。可以试试这个修改后的代码:
官方文档里提到,处理跨浏览器兼容性时要特别注意用户的交互状态和自动播放策略。如果还是不行,考虑在用户点击页面任意位置后再触发播放。
这问题真挺烦人的,每个浏览器都有自己的脾气,调试起来耗时间。希望这能帮你解决问题。