【问题标题】:Auto-Generated captions not supported in YouTube iFrame APIYouTube iFrame API 不支持自动生成的字幕
【发布时间】:2017-08-12 05:59:11
【问题描述】:

YouTube iFrame API 的字幕功能不适用于自动生成的字幕。

是否有解决此缺陷的计划,或者是否有其他方法可以在 iFrame API 中启用自动生成的字幕?

【问题讨论】:

标签: youtube youtube-api auto-generate youtube-iframe-api captions


【解决方案1】:

一如既往,有办法。

没有官方或记录在案的方法可以强制嵌入视频中的自动生成字幕。但是有一个 setOption 方法的解决方案现在可以使用,但不能保证它将来会起作用,因为这是该方法的未记录调用:

const tag = document.createElement('script')
tag.src = 'https://www.youtube.com/iframe_api'
const firstScriptTag = document.getElementsByTagName('script')[0]
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag)

let player

const onApiChange = _ => {   
  if (typeof player.setOption === 'function') {
    player.setOption('captions', 'track', {languageCode: 'en'})
  }  
}

const onReady = _ => {   
  player.playVideo()
}

function onYouTubePlayerAPIReady() {
  player = new YT.Player('player', {
    height: '360',
    width: '640',
    videoId: 'q2C0EO0zzAY',
    playerVars: {
      cc_load_policy: 1
    },
    events: {
      onReady,
      onApiChange
    }
  })
}

工作jsFiddle is here。

在使用 setOption 函数之前,您必须等待 onApiChange 事件。 (参见:https://developers.google.com/youtube/iframe_api_reference#Events)根据文档,仅支持 'fontSize' 和 'reload' 参数。但是,更改字幕轨道也有效,它会打开字幕作为副作用。我只尝试了“en”语言代码,当然如果有可用的,这将更改为正常的英文字幕轨道,但在没有预定义轨道的情况下会显示自动生成的英文字幕。

(您也可以使用 getOption 方法查询活动字幕轨道,但如果使用自动生成的字幕,它将不会返回任何内容。)

【讨论】:

    【解决方案2】:

    我也有同样的需求 - 越来越多的视频使用 Auto cptions 发布,如果 Iframe 也能支持它们会很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-03
      • 1970-01-01
      • 2023-03-08
      • 2017-12-05
      • 2016-03-13
      • 2017-02-08
      • 2017-03-20
      • 2014-03-14
      相关资源
      最近更新 更多