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

标签 javascript video video.js getelementsbytagname getattribute

我需要读取然后修改视频元素中的一些标签和属性,该元素使用 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');

if (poster != null)
{
    var newposter = addChk(poster, "p");  // generates modified source
    video.setAttribute('poster', newposter);
}

for (var i = 0; i < sources.length; i++) {
    var s = sources[i].getAttribute('src');
    s = addChk(s,"f");                    // generates modified source
    sources[i].setAttribute('src', s);
}

for (var i = 0; i < tracks.length; i++)
{
    var s = tracks[i].getAttribute('src');
    s = addChk(s, "c");                   // generates modified source
    tracks[i].setAttribute('src', s);
}

谢谢。

最佳答案

当您使用 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'}
]);

要更新轨道,您需要先删除现有轨道,然后再添加 for now .

// 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'
});

关于javascript - 读取 video.js 中视频元素/属性的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35238088/

相关文章:

ios - 现在允许使用 Instagram API 上传视频了吗?

javascript - 导航栏无法点击

javascript - 有没有办法打印动态变量?

javascript - 自定义 HTML5 视频控件 - Escape 按钮不会触发全屏切换功能

android - 在 VideoView 上绘画

javascript - Video.js - 使用 Flash 在单个页面上显示多个 mp4 视频

javascript - 从 videoJS 显示视频时长

javascript - 调用 Javascript 库外部定义的函数

javascript - Highcharts - 对 JSON 数据排序 JavaScript

javascript - 无法激活基于 JavaScript IE 识别的事件