使用JavaScript生成清单时,将段URL动态添加到#EXTINF

vs3odd8k  于 2023-02-07  发布在  Java
关注(0)|答案(1)|浏览(124)

我正在生成一个播放列表清单,并使用HLS播放生成的m3u8文件。我正在遍历所有的片段文件,将它们的url添加到#EXTINF:,但当我运行我的函数时,我得到了下面的错误,这意味着它没有正确接收url:

[error] > 0 while loading data:application/x-mpegURL;base64,undefined

下面是我的代码:
x一个一个一个一个x一个一个二个x

oknwwptz

oknwwptz1#

我敢打赌你还没有读过javascript的基础知识:

function generate_manifest() {
    if (hls == undefined) {
      player = document.createElement("video");
      document.body.appendChild(player);

      player.pause();
      player.src = "";
-     for (let ii = 0; ii < segment_files.length; i++) {
-       var segment = segment_files[ii];
-     }
-     var manifestfile = btoa(
-       `#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-PLAYLIST-TYPE:VOD\n#EXT-X-TARGETDURATION:11\n#EXTINF:10.000,\n${segment}\n#EXT-X-ENDLIST`
-     );

+     const manifestfile = btoa(`#EXTM3U
#EXT-X-VERSION:3
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:11
#EXTINF:10.000,
${segment_files.join('\nEXTINF:10.000,\n')}
#EXT-X-ENDLIST`)
    }
    if (Hls.isSupported()) {
      hls = new Hls({
        enableWorker: true,
        lowLatencyMode: true,
      });
      hls.attachMedia(player);
      hls.loadSource("data:application/x-mpegURL;base64," + manifestfile);
      player.muted = true;
      player.play();
    }
  }

相关问题