youtube embed - 使用默认的特定语言强制使用字幕

Ori*_*itK 10 youtube-api

我正在使用特定语言的字幕嵌入youtube视频(希伯来语,在我的例子中).我正在使用:

hl=He&cc_load_policy=1
Run Code Online (Sandbox Code Playgroud)

显示希伯来语字幕,工作正常.

但是,如果我的语言中没有副词,我希望看到英语(如果有的话)作为默认语言.有没有办法强迫它?

i--*_*i-- 24

您可以使用cc_load_policy&cc_lang_prefoptions via 强制标题和语言

网址:

http://www.youtube.com/embed/M7lc1UVf-VE?cc_load_policy=1&cc_lang_pref=en

API:

var ytPlayer = new YT.Player(
    ...
    playerVars: {
        cc_load_policy: 1,
        cc_lang_pref: 'en'
    },
    ....
});
Run Code Online (Sandbox Code Playgroud)

致谢:https://webapps.stackexchange.com/questions/27669/is-there-any-way-to-force-subtitles-in-a-youtube-video

  • 它似乎不再起作用了。即使它会起作用,我也在寻找一种方法来开始播放“自动生成和翻译”的字幕。用你的方法我不知道该怎么做。 (3认同)

小智 5

我没有在他们的 api 文档中的任何地方找到这个,但是使用您的 youtube 播放器对象,您应该能够执行以下操作以将其更改为英文字幕:

player.setOption("captions", "track", {"languageCode": "en"});  //Works for html5 ignored by AS3
player.setOption("cc", "track", {"languageCode": "en"});  //Works for AS3 ignored by html5
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

var module;
if (testplayer.getOptions().indexOf("cc") !== -1) {
    module = "cc";
} else if (testplayer.getOptions().indexOf("captions") != -1) {{
    module = "captions";
}
var tracklist = testplayer.getOption(module, "tracklist");

// then iterate through the tracklist to see if "he" or "en" is there.
Run Code Online (Sandbox Code Playgroud)

你有 cc_load_policy=1 但你也可以通过 js 通过以下方式打开它:

player.loadModule("captions");  //Works for html5 ignored by AS3
player.loadModule("cc");  //Works for AS3 ignored by html5
Run Code Online (Sandbox Code Playgroud)

关闭它:

player.unloadModule("captions");  //Works for html5 ignored by AS3
player.unloadModule("cc");  //Works for AS3 ignored by html5
Run Code Online (Sandbox Code Playgroud)


Jef*_*ick 4

我相信完全省略 hl= 会更好。(它实际上不是我们官方支持的播放器参数之一。)字幕将默认为视频观看者的语言偏好,我的假设是,如果没有观看者首选语言的字幕,它将退回到英语。