Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 在video.js中读取视频元素/属性的正确方法是什么?_Javascript_Video_Video.js_Getelementsbytagname_Getattribute - Fatal编程技术网

Javascript 在video.js中读取视频元素/属性的正确方法是什么?

Javascript 在video.js中读取视频元素/属性的正确方法是什么?,javascript,video,video.js,getelementsbytagname,getattribute,Javascript,Video,Video.js,Getelementsbytagname,Getattribute,我需要读取并修改video元素中的一些标记和属性,该元素使用video.js作为播放器。我已经能够使用getElementsByTagName和getAttribute读取信息,如下面的代码所示。但我希望通过video.js(5.6.0)有一个更简单/更好/最好的方法来实现这一点 var video=document.getElementsByTagName('video')[0]; var poster=video.getAttribute(“poster”); var sources=vid

我需要读取并修改video元素中的一些标记和属性,该元素使用video.js作为播放器。我已经能够使用getElementsByTagName和getAttribute读取信息,如下面的代码所示。但我希望通过video.js(5.6.0)有一个更简单/更好/最好的方法来实现这一点

var video=document.getElementsByTagName('video')[0];
var poster=video.getAttribute(“poster”);
var sources=video.getElementsByTagName('source');
var tracks=video.getElementsByTagName('track');
如果(海报!=null)
{
var newposter=addChk(poster,“p”);//生成修改过的源代码
video.setAttribute('poster',newposter);
}
对于(var i=0;i

谢谢。

当您使用video.js时,您应该使用它的API来实现这些功能。在播放器创建后直接修改视频元素并不总是像预期的那样工作,而且如果您使用了不同的播放技术(如IE8上的Flash),甚至不会有视频元素

var player = videojs('my_player_id');

// Get/set poster:
console.log(player.poster());
player.poster('//example.com/poster.jpg');

// Get source:
console.log(player.currentSrc());

// Update source:
player.src({src: '//example.com/video.mp4', type: 'video/mp4'});

// Multiple sources:
player.src([
  {src: '//example.com/video.m3u8', type: 'application/x-mpegURL'},
  {src: '//example.com/video.mp4', type: 'video/mp4'}
]);
要更新曲目,您需要在添加之前删除现有曲目

//删除曲目:
var tracks=player.textTracks();

对于(i=0;i当你使用video.js时,你应该使用它的API来实现这些。在创建播放器后直接修改视频元素并不总是像预期的那样有效,而且如果你曾经使用过不同的播放技术(比如IE8上的Flash),甚至没有视频元素

var player = videojs('my_player_id');

// Get/set poster:
console.log(player.poster());
player.poster('//example.com/poster.jpg');

// Get source:
console.log(player.currentSrc());

// Update source:
player.src({src: '//example.com/video.mp4', type: 'video/mp4'});

// Multiple sources:
player.src([
  {src: '//example.com/video.m3u8', type: 'application/x-mpegURL'},
  {src: '//example.com/video.mp4', type: 'video/mp4'}
]);
要更新曲目,您需要在添加之前删除现有曲目

//删除曲目:
var tracks=player.textTracks();

for(i=0;我想了解video.js方法的详细信息。我只使用mp4和webm,不使用IE8。根据这些假设,如果我在执行getElementsByTagName/getAttribute操作之前不创建video.js播放器(即,在手动设置video.js播放器之前执行代码,不依赖数据设置属性),getElementsByTagName/getAttribute是否安全?(只是尝试确保我了解哪些可以工作,哪些不可以工作。)我不建议这样做。一旦播放器初始化,使用video.js API与视频元素交互。谢谢。我想你指的是曲目,而不是删除文本曲目的循环中的tt?谢谢关于video.js方法的详细信息。我将我的使用限制为仅使用mp4和webm,而不是处理IE8。鉴于这些假设,如果我在我执行getElementsByTagName/getAttribute操作(即,在手动设置video.js播放器之前执行代码,不依赖数据设置属性)之前,不要创建video.js播放器getElementsByTagName/getAttribute安全吗?(只是试着确保我理解什么可以工作,什么不可以工作。)我不建议这样做。一旦播放器初始化,使用video.js API与视频元素交互。谢谢。我想你是指曲目,而不是删除文本曲目的循环中的tt?
// Remove tracks:
var tracks = player.textTracks();
for (i = 0; i<tracks.length;i++) {
  player.removeRemoteTextTrack(tracks[i]);
}
// Add a track
player.addRemoteTextTrack({
  kind: 'captions',
  src: '//example.com/captions.vtt',
  srclang: 'is',
  label: 'íslenska'
});
// never touch videoElement again. It's owned by videojs now.
var player = videojs(videoElement);

// IWillNotUseThisInPlugins is mandatory, per videojs spec
// https://github.com/videojs/video.js/issues/2617
player.tech({IWillNotUseThisInPlugins: true}).getAttribute('playsinline')