YouTube iFrame API中不支持自动生成的字幕

YouTube iFrame API中不支持自动生成的字幕,youtube,youtube-api,auto-generate,youtube-iframe-api,captions,Youtube,Youtube Api,Auto Generate,Youtube Iframe Api,Captions,YouTube iFrame API的字幕功能不适用于自动生成的字幕 是否有计划解决此缺陷,或者是否有其他方法在iFrame API中启用自动生成的字幕?我也有同样的需求-越来越多的视频使用自动字幕发布,如果iFrame中也支持这些视频,那将是一件好事。我也有同样的需求-越来越多的视频使用自动字幕发布cption,如果它们也能像往常一样在Iframe中得到支持,那就太好了,有一种方法 目前还没有正式的或有文件证明的方法来强制在嵌入式视频中自动生成字幕。但是,现在有一个使用setOption方法的

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


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

我也有同样的需求-越来越多的视频使用自动字幕发布,如果iFrame中也支持这些视频,那将是一件好事。

我也有同样的需求-越来越多的视频使用自动字幕发布cption,如果它们也能像往常一样在Iframe中得到支持,那就太好了,有一种方法

目前还没有正式的或有文件证明的方法来强制在嵌入式视频中自动生成字幕。但是,现在有一个使用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
    }
  })
}

工作

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


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

一如既往,有一种方法

目前还没有正式的或有文件证明的方法来强制在嵌入式视频中自动生成字幕。但是,现在有一个使用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
    }
  })
}

工作

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


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

此处需要相同,但不起作用:不起作用,此处需要相同,但不起作用:不起作用,