有什么方法可以使用 Video.js 从视频标签中获取当前字幕的文本吗?
Is there any way to get current caption's text from video tag using Video.js?
我想在播放视频时获取当前字幕的文本(而不是实现自己的字幕块(即隐藏原始字幕)并以几种不同的方式使用这些信息)。目前我为我的播放器使用 videojs。有没有办法从中获取当前字幕的字符串?
var videoElement = document.querySelector("video");
var textTracks = videoElement.textTracks;
var textTrack = textTracks[0];
var kind = textTrack.kind // e.g. "subtitles"
var mode = textTrack.mode
试试这个
使用 HTML5 视频 API 获取当前来源,使用 /
和 .
分割 src 获取名称。
上面的link在HTML5视频播放器中有所有可用的API。您的插件使用 HTML5 视频播放器!
解决方案:
videojs("example_video_1").ready(function() {
myvideo = this;
var aTextTrack = this.textTracks()[0];
aTextTrack.on('loaded', function() {
console.log('here it is');
cues = aTextTrack.cues(); //subtitles content is here
console.log('Ready State', aTextTrack.readyState())
console.log('Cues', cues);
});
//this method call triggers the subtitles to be loaded and loaded trigger
aTextTrack.show();
});
结果:
PS。找到代码 here。
此代码获取当前提示并放入 <span>
元素
(function(){
var video = document.querySelector('video');
var span = document.querySelector('span');
if (!video.textTracks) return;
var track = video.textTracks[0];
track.mode = 'hidden';
track.oncuechange = function(e) {
var cue = this.activeCues[0];
if (cue) {
span.innerHTML = '';
span.appendChild(cue.getCueAsHTML());
}
};
})()
是的,您可以在视频加载时添加 cuechange 事件侦听器。这可以让您获得当前曲目的字幕文本。 Here 是我使用 videojs 的工作示例。
我想在播放视频时获取当前字幕的文本(而不是实现自己的字幕块(即隐藏原始字幕)并以几种不同的方式使用这些信息)。目前我为我的播放器使用 videojs。有没有办法从中获取当前字幕的字符串?
var videoElement = document.querySelector("video");
var textTracks = videoElement.textTracks;
var textTrack = textTracks[0];
var kind = textTrack.kind // e.g. "subtitles"
var mode = textTrack.mode
试试这个
使用 HTML5 视频 API 获取当前来源,使用 /
和 .
分割 src 获取名称。
上面的link在HTML5视频播放器中有所有可用的API。您的插件使用 HTML5 视频播放器!
解决方案:
videojs("example_video_1").ready(function() {
myvideo = this;
var aTextTrack = this.textTracks()[0];
aTextTrack.on('loaded', function() {
console.log('here it is');
cues = aTextTrack.cues(); //subtitles content is here
console.log('Ready State', aTextTrack.readyState())
console.log('Cues', cues);
});
//this method call triggers the subtitles to be loaded and loaded trigger
aTextTrack.show();
});
结果:
PS。找到代码 here。
此代码获取当前提示并放入 <span>
元素
(function(){
var video = document.querySelector('video');
var span = document.querySelector('span');
if (!video.textTracks) return;
var track = video.textTracks[0];
track.mode = 'hidden';
track.oncuechange = function(e) {
var cue = this.activeCues[0];
if (cue) {
span.innerHTML = '';
span.appendChild(cue.getCueAsHTML());
}
};
})()
是的,您可以在视频加载时添加 cuechange 事件侦听器。这可以让您获得当前曲目的字幕文本。 Here 是我使用 videojs 的工作示例。