使用 JS 或 PHP = MediaElementJS 更改视频的 SRC

Change SRC of a video using JS or PHP = MediaElementJS

下午好。 当用户点击带有 img 的 div 时,我正在尝试更改我的视频播放器 MediaElement.Js 的视频源,示例:

<a href="http://dns:port/hls/125.m3u8"><div id="change_channel><img src="https://www.example.com/img_chh/fox.png"></div></a>

我找到了其他用户的一些答案,他们想更改 html5 视频的来源,但只有两个流。我遇到的问题是我有 +400 个流,而其他用户的答案的代码行不再工作...

我试过运行这个代码,但它没有用:

<a href="http://dns:port/live/123.m3u8" onclick="
  playerObject.pause();
  playerObject.setSrc(this.href);
  playerObject.media.load();
  playerObject.load();
  return false
"><div id="change_channel><img src="https://www.example.com/img_chh/fox.png"></div></a>

我会将完整的代码留在 codepen 中以便调试它比将所有文件下载到 运行 MediaElement.js 更容易。 https://codepen.io/Hacker_D/pen/vzzKgM 如果有人知道如何解决这个问题,我将不胜感激。 此致,DiX

首先,给定的代码当然不会工作,因为 playerObject 没有引用任何东西,如果它是指 <video> 元素,那么 [=12] 行=] 无效,因为 Audio/Video DOM element 上没有这样的 属性。至少在某个地方初始化它(给你的 <video> 标签和 id,然后在某个地方做 playerObject = document.getElementById(<the id of your video element>);

我分叉了你提出的问题 link 并修复了 javascript (https://codepen.io/anon/pen/gddogL),但是由于视频 url 无效,所以没有播放, 但它不再有任何 javascript 错误。因此,如果您有有效的视频 url,您至少可以修改一下。

至于他的视频数量,因为你标记了 php,只需创建一个通用的 javascript 函数,它获取源并将其设置为播放器,在生成页面时,只需将每个点击处理程序中的正确来源。