无法播放 HLS 播放列表 | video.js

Unable to play HLS playlist | video.js

我在 WordPress 网站上工作,并以编程方式在其中集成了 Video.js 播放器。屏幕是黑色的,我可以听到音频。很可能是带宽问题(如所附屏幕截图所示)。

有时我能看视频,但大多数时候是黑屏。

如何解决这个问题。我的代码如下:

<link href="https://unpkg.com/video.js/dist/video-js.css" rel="stylesheet">
<script src="https://unpkg.com/video.js/dist/video.js"></script>
<script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script>

</head>
<body>

<?php
    $var_value = $_GET['video_id'];
?>

<video id="my_video_1" class="video-js vjs-default-skin" controls preload="auto" width="640" height="268" data-setup='{}'>
<source src="https://d3eykkkvwlu40v.cloudfront.net/v2/hls/<?php echo $var_value?>/<?php echo $var_value?>.m3u8" type="application/x-mpegURL">

</video>

<script src="http://static.jsbin.com/js/render/edit.js?4.0.4"></script>

请指导。谢谢

浏览器中的 Media Source Extension (MSE) 不支持您在 audio/video 和纯音频流之间动态切换,反之亦然。因此,如果播放器从纯音频变体开始,它将根本无法切换或只能播放该变体的音频。

理论上,玩家可以通过为每个此类切换重新初始化 MSE 来在这些变体之间切换。但我不知道有没有玩家支持这个,理由很充分:

  • 切换不会是完全无缝的
  • 缓冲的数据会被浏览器删除

这将是糟糕的用户体验。

所以我认为有三种选择:接受它、删除纯音频变体或 find/build 支持它的播放器。我会去搬家。