我在示例演示页面上使用了相同的标记,但默认参数并不真正起作用。我没有看到任何字幕自动播放。我必须手动进行字幕选择并选择曲目。
<track kind="subtitles" src="" srclang="en" label="English" />
<track kind="subtitles" src="" srclang="it" label="Italian" default />
我做错了什么?或者这是一个错误?
答案 0 :(得分:3)
当播放器准备就绪时,您可以使用javascript(jQuery)自动触发字幕菜单的点击事件。这将显示标题而无需手动点击。
videojs("vdoPlayer", {}, function(){
// Player (this) is initialized and ready.
$("li.vjs-menu-item").eq(2).trigger('click');
});
您可能需要更改eq()值,具体取决于您单击的菜单项。使用console.log($(“li.vjs-menu-item”)。eq(2).text());确定哪个菜单是哪个。
答案 1 :(得分:1)
这适用于iPad(Chrome,Safari)和Windows 7 PC(FF,Chrome):
<track kind="captions" src="demo.captions.vtt" srclang="en" label="English" default></track>
我使用的是videojs 4.6.2,也许是因为这个问题被解决了。
答案 2 :(得分:0)
我遇到了与最新video.js版本4.1相同的行为。
版本3.x中显示默认字幕 - 它们不再是4.x版本了!用户必须手动点击字幕图标并选择字幕语言才能使字幕显示可见! 默认参数的设置方式与3.x版本完全相同,后者在没有用户手动干预的情况下正确显示字幕。
答案 3 :(得分:0)
现在,4.1.0中的默认参数似乎没有做任何事情。提交了一个问题here。
此外 - 根据我对API的理解,没有一种很好的方法(没有编译自己的播放器,通过exports.js公开更多的轨道功能)以编程方式选择你想要的“安全”方式的默认音轨。
我的建议是取消评论错误中引用的行,进行一些测试,并(假设一切正常)向videojs repo提交拉取请求,启用默认曲目选择。
答案 4 :(得分:0)
尝试从英文字幕中删除srclang="en"
。虽然这是一个错误,但删除它似乎已经修复了此issue page上的评论者'Crixo'的问题。
答案 5 :(得分:0)
现在你可以像这样默认开启它:
const videoJsOptions: VideoJsPlayerOptions = {
...
tracks: [
{
src: `/films/${props.film.id}/subtitles.vtt`,
kind: "captions",
srclang: "en",
label: "English",
default: true,
},
],
};