动态更改 Youtube Iframe playerVars
Posted
技术标签:
【中文标题】动态更改 Youtube Iframe playerVars【英文标题】:Changing Youtube Iframe playerVars dynamically 【发布时间】: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
);
【问题讨论】:
【参考方案1】:使用.loadPlaylist() 指定播放列表和视频(在播放列表中)的(数字)索引,而不是视频 ID。
player.loadPlaylist(list:String,
listType:String,
index:Number,
startSeconds:Number,
suggestedQuality:String):Void
这个函数加载指定的列表并播放它。该列表可以是播放列表、搜索结果提要或用户上传的视频提要。
可选的
listType
属性指定您要检索的结果提要的类型。有效值为playlist
、search
和user_uploads
。默认值为playlist
。必需的
list
属性包含一个键,用于标识 YouTube 应返回的特定视频列表。...
1
参见this example fiddle,其中两个不同播放列表中的两个视频在clickEventHandler()
函数中加载(取决于单击的列表项的id 属性值)。
player.loadPlaylist(
list: 'PLUdAMlZtaV11U9AtszkMh0bpRqM4dtlDC',
index: 7
);
【讨论】:
以上是关于动态更改 Youtube Iframe playerVars的主要内容,如果未能解决你的问题,请参考以下文章
动态创建的 iFrame 上的 YouTube iFrame API
在 WP 中选择更改时更改 YouTube iFrame 源
Soundcloud iframe 和 YouTube iframe 一起出现的问题