Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery创建videojs_Javascript_Jquery_Html5 Video_Video.js - Fatal编程技术网

Javascript 使用jquery创建videojs

Javascript 使用jquery创建videojs,javascript,jquery,html5-video,video.js,Javascript,Jquery,Html5 Video,Video.js,我试图使用Jquery创建多个videojs元素,但我无法播放视频。 我用videojs在一个页面上运行了12条实时流,当我在页面上的每个流中硬编码时,它们都能正常工作 <div class="box"> <video id="cam1@g20" class="video-js vjs-default-skin vjs-big-play-centered" data-setup='{"autoplay": true, "controls": false, "widt

我试图使用Jquery创建多个videojs元素,但我无法播放视频。 我用videojs在一个页面上运行了12条实时流,当我在页面上的每个流中硬编码时,它们都能正常工作

<div class="box">
  <video id="cam1@g20" class="video-js vjs-default-skin vjs-big-play-centered"
    data-setup='{"autoplay": true, "controls": false, "width": 640, "height": 480, "techOrder": ["flash", "html5"]}'>
    <source src="http://myurl.com/livehttp/cam1@g20.stream/playlist.m3u8" type='video/mp4' />
  </video>
    <span class="grid-overlay-bottom-right"> cam1@g20 </span>
</div>

cam1@g20 
我现在正试图通过使用js和jquery创建div和视频来添加每个视频

HTML

JS
$(文档).ready(函数(){
变量流=[
“cam1”,
“cam2”,
“cam1”,
“cam2”,
“cam1”,
“cam2”,
“cam1”,
“cam2”,
“cam1”,
“cam2”,
“cam1”,
“cam2”
];
var videoStreams=函数(){
对于(变量i=0;i“确保在DOM包含所有视频框后初始化VideoJS。

在上一个示例代码中,您应该为VideoJS容器使用video元素,而不是div元素。video js将在HTML5视频中重复使用此元素,并将其包装在div中

$('#cam_streams').append(
    '<div class="box"><video id="box-' + stream + '" class="video-js vjs-default-skin"></video><span class="grid-overlay-bottom-right">' + stream + '</span></div>')
$('#cam_streams')。追加(
''+流+'')

我找到了一种以json格式实现videojs的方法,而不是在找到后用Jquery创建视频标记来尝试添加它 我还学习了一些jquery并对其进行了改进

  var wrapper = $('<div/>');
  wrapper.addClass('box');

  var video = $('<video></video>');
  video.addClass("video-js vjs-default-skin vjs-big-play-centered ");
  video.attr('id', 'box-' + stream);
  video.appendTo(wrapper);

  var annotation = $('<span>' + stream + '</span>');
  annotation.addClass('grid-overlay-bottom-right');
  annotation.appendTo(wrapper);

  wrapper.appendTo('#cam_streams');

videojs("box-" + stream, {
  techOrder: ['flash', 'html5'],
  autoplay: false,
  width: 640,
  height: 480,
  controls: true,
  sources: [{
    src:'http://myurl.com/livehttp/' + stream + '.stream/playlist.m3u8',
    type: "video/mp4",

  }]
});
var包装器=$('');
wrapper.addClass('box');
var视频=$('');
addClass(“video js vjs默认皮肤vjs大播放中心”);
video.attr('id','box-'+流);
附加到(包装器);
变量注释=$(''+流+'');
annotation.addClass('grid-overlay-bottom-right');
appendTo(包装器);
appendTo('cam#u streams');
videojs(“框-”+流{
techOrder:['flash','html5'],
自动播放:错误,
宽度:640,
身高:480,
控制:对,
资料来源:[{
src:'http://myurl.com/livehttp/“+stream+”.stream/playlist.m3u8',
输入:“视频/mp4”,
}]
});

我已经在Chrome和Safari上进行了测试,效果很好。

非常感谢,它现在可以在Chrome和Safari上使用。我一定是在某个时候更改了视频标签,但没有意识到。
$('#cam_streams').append(
    '<div class="box"><video id="box-' + stream + '" class="video-js vjs-default-skin"></video><span class="grid-overlay-bottom-right">' + stream + '</span></div>')
  var wrapper = $('<div/>');
  wrapper.addClass('box');

  var video = $('<video></video>');
  video.addClass("video-js vjs-default-skin vjs-big-play-centered ");
  video.attr('id', 'box-' + stream);
  video.appendTo(wrapper);

  var annotation = $('<span>' + stream + '</span>');
  annotation.addClass('grid-overlay-bottom-right');
  annotation.appendTo(wrapper);

  wrapper.appendTo('#cam_streams');

videojs("box-" + stream, {
  techOrder: ['flash', 'html5'],
  autoplay: false,
  width: 640,
  height: 480,
  controls: true,
  sources: [{
    src:'http://myurl.com/livehttp/' + stream + '.stream/playlist.m3u8',
    type: "video/mp4",

  }]
});