首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在video.js中读取视频元素/属性的正确方法是什么?

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

Stack Overflow用户
提问于 2016-02-06 06:24:44
回答 2查看 3.9K关注 0票数 2

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

代码语言:javascript
运行
复制
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);
}

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-06 12:27:53

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

代码语言:javascript
运行
复制
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'}
]);

为了更新轨道,在添加现在之前,您需要删除现有的轨道。

代码语言:javascript
运行
复制
// 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'
});
票数 3
EN

Stack Overflow用户

发布于 2019-06-13 20:36:09

代码语言:javascript
运行
复制
// 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')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35238088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档