【问题标题】:Changing Youtube Iframe playerVars dynamically动态更改 Youtube Iframe playerVars
【发布时间】:2016-04-14 10:01:14
【问题描述】:

我有一个使用 Youtube Iframe API 的网页,并且我设法使用这行代码更改了 videoId:

player.loadVideoById(videoId)

但为了让视频循环播放,videoId 和播放列表必须匹配,因此我还需要更改 playerVars 对象内的播放列表参数。有人能告诉我一个简单的方法吗?

这是原始代码:

var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
playerVars: { 
    'loop' : 1,
    'playlist': 'M7lc1UVf-VE'
    },
events: {
  'onReady': onPlayerReady,
  'onStateChange': onPlayerStateChange
    }
 });
}

我尝试设置一个变量,如下所示,并像 loadVideoById 一样动态更改它:

player.loadVideoById(videoId) 
currentVideoId = videoId

var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: currentVideoId,
playerVars: { 
    'loop' : 1,
    'playlist': currentVideoId
    },
events: {
  'onReady': onPlayerReady,
  'onStateChange': onPlayerStateChange
    }
 });
}

【问题讨论】:

    标签: javascript api youtube youtube-api


    【解决方案1】:

    使用.loadPlaylist() 指定播放列表和视频(在播放列表中)的(数字)索引,而不是视频 ID。

    player.loadPlaylist({list:String,
                     listType:String,
                     index:Number,
                     startSeconds:Number,
                     suggestedQuality:String}):Void
    

    这个函数加载指定的列表并播放它。该列表可以是播放列表、搜索结果提要或用户上传的视频提要。

    • 可选的 listType 属性指定您要检索的结果提要的类型。有效值为 playlistsearchuser_uploads。默认值为 playlist

    • 必需的 list 属性包含一个键,用于标识 YouTube 应返回的特定视频列表。

    ...

    1

    参见this example fiddle,其中两个不同播放列表中的两个视频在clickEventHandler() 函数中加载(取决于单击的列表项的id 属性值)。

    player.loadPlaylist({
        list: 'PLUdAMlZtaV11U9AtszkMh0bpRqM4dtlDC',
        index: 7
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-10
      • 2017-02-06
      • 2014-01-21
      • 2011-10-09
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      相关资源
      最近更新 更多