为i-Device更改html5视频元素的HLS视频源

问题描述 投票:0回答:2

我正在尝试使用javascript动态更改视频源。我有一个包含<video>元素的网页,该网页将播放HLS流。可以,但是我无法通过脚本动态更改视频。

我真的很坚持。我也许可以通过使用iframe解决此问题,但这会带来其他问题。

有人提示如何在智能设备上使用视频标签来更改HLS-Stream,而不必关闭整个页面并打开另一个页面吗?

我知道移动智能设备只能播放一个视频,但是如果视频源是HLS,则真的不可能动态更改视频源吗?

更新:遵循aldel的建议,我已将最小样本更新为:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">  
  <title>TestPage</title> 
  <script type="text/javascript">
  function changeVideoSrc(url)
  {
    var vid = document.getElementById("vid");
    vid.src = url;
    // Calling load() makes Safari request the segments, but still no video is being displayed:
    vid.load();
  }
  </script>
</head>
<body id="body">
<div id="mainDiv">
 <video id="vid" idth="260" height="208" controls src="http://10.42.120.25/hls/cam01.m3u8" type="application/x-mpegurl">No support for video</video>
</div>
<div>
 <input type="button" name="Cam01" value="Cam01" onclick="changeVideoSrc('http://10.42.120.25/hls/cam01.m3u8');">
 <input type="button" name="Cam02" value="Cam02" onclick="changeVideoSrc('http://10.42.120.25/hls/cam02.m3u8');">
</div>
</body>
</html>

[遗憾的是,此代码仍无法在iPad上使用。它在Android设备上运行正常,但在智能设备上运行不正常。

我仍然只能在iPad上仅播放一种HLS来源:如果我使用Safari到达iPad上的页面,则可以单击视频控件的播放按钮,然后视频开始播放。如果我再单击“ Cam02”,则视频将停止播放,但是无法播放新视频:我从没有在野生动物园的视频控件上看到播放按钮。在服务器端,我可以看到Safari正在请求第二台摄像机的m3u8文件。但从未要求过任何细分。

如果更改src-Attribute后再调用load(),将变得更加有趣:我在服务器上看到将开始请求第二个摄像机的段。仅视频窗口保持黑色-从未显示过视频。

此load()有一个有趣的其他效果:如果我到达iPad上的页面,并且不开始播放Cam01,而是单击按钮Cam02,切换到Cam02,然后调用Load I,就可以开始cam02的播放。

也非常有趣:如果我不使用HLS源,而只是一个简单的mp4,一切都很好,> type ='video / mp4'。然后,我也可以在iPad上顺利切换音源。

还有其他提示吗?很快我要说的是,苹果公司只是无法为HLS提供适当的支持-尽管他们已经发明了它。 Chrome可以更好地处理它。还请注意,iPad上的Chrome出现了完全相同的问题。

我正在尝试使用javascript动态更改视频源。我有一个带有

javascript ios html5-video http-live-streaming
2个回答
0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.