动态更改Youtube iframe playerVars

时间:2016-01-09 20:49:16

标签: javascript api youtube youtube-api

我有一个使用Youtube Iframe API的网页,我设法使用以下代码行更改videoId:

player.loadVideoById(videoId) 
currentVideoId = videoId

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

这是原始代码:

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
    }
 });
}

我已尝试设置如下所示的变量并动态更改它,因为我执行了loadVideoById:

from rest_framework.renderers import JSONRenderer
serializer = CommentSerializer(comment)
json = JSONRenderer().render(serializer.data)

HyperlinkedIdentityField

1 个答案:

答案 0 :(得分:0)

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

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

此函数加载指定的列表并播放它。该列表可以是播放列表,搜索结果Feed或用户上传的视频供稿。

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

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

  •   
     

...

     

1

请参阅this example fiddle,其中clickEventHandler()功能中加载了两个不同播放列表中的两个视频(具体取决于单击的列表项的 id 属性值)。

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