YouTube API iframe 嵌入 - 在播放期间更改字幕语言的 javascript?

问题描述

一位设计师向我传递了一个布局,其中包含用于嵌入 YouTube 视频的空间,其下方有文本链接,可将 CC 语言从英语切换为西班牙语,反之亦然。

现在用户当然可以在 YT 控件中切换它,但最终客户坚持冗余。

下面的代码将记录到控制台 6 选项,用于 'captions' 模块,包括 'track'。然而,似乎只有 'reload' 和 'fontSize' 会响应 player.setoption()。这些可能是 API 支持的唯一选项。有谁知道别的吗?

<!DOCTYPE html>
<html>
<head>
    <script src="https://www.youtube.com/iframe_api"></script>
</head>
<body>
    <div id="player"></div>
    <script>
    var player;
    function onYouTubeIframeAPIReady() {
        player = new YT.Player('player',{
            height: '432',width: '768',videoId: 'KZFwwY1-Qz0',playerVars: {
                'autoplay': 1,'cc_load_policy': 1,'playsinline': 1,'start': 30
            },events: {
                'onApiChange': initialize
            }
        });
    }
    function initialize() {
        stuff = player.getoptions('captions');
        console.log(stuff);
        player.setoption('captions','track','es-US');
    }
    </script>
</body>
</html>

我也试过 player.setoption('captions',{'language-code': 'es-US'});

解决方法

语言可以在初始化时用languageCode指定。

函数初始化(){ stuff = player.getOptions('captions'); 控制台日志(东西); player.setOption( "captions",'track',{ 'languageCode' : 'es-US' } ); }