2016-01-09 15 views
8

Mam stronę, która używa interfejsu API Youtube iframe i udało mi się zmienić videoID za pomocą tego wiersza kodu:Zmiana playerVars Youtube iframe dynamicznie

player.loadVideoById(videoId) 

Jednak aby wideo do pętli zarówno videoID i odtwarzania Muszę się dopasować, więc muszę zmienić parametr listy odtwarzania wewnątrz obiektu playerVars. Czy ktoś mógłby mi powiedzieć, w jaki prosty sposób można się do tego zbliżyć?

Oryginalny kod:

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

Próbowałem ustawienie zmiennej, jak pokazano poniżej, a zmienił go dynamicznie jak ja loadVideoById:

player.loadVideoById(videoId) 
currentVideoId = videoId 

i

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

Odpowiedz

0

Użyj .loadPlaylist(), aby określić listę odtwarzania i (numeryczne) inde x filmu (na liście odtwarzania) zamiast identyfikatora wideo.

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

Ta funkcja wczytuje określoną listę i odtwarza go. Lista może być listą odtwarzania, kanałem wyników wyszukiwania lub kanałem przesłanym przez użytkownika.

  • Opcjonalny listType właściwość określa typ wyników RSS że jesteś pobierania. Prawidłowe wartości to playlist, search i user_uploads. Domyślna wartość to playlist.

  • Wymagana właściwość list zawiera klucz identyfikujący listę filmów, które powinien powrócić na YouTube.

...

1

Zobacz this example fiddle gdzie dwa filmy w dwóch różnych list odtwarzania są ładowane w funkcji clickEventHandler() (w zależności od wartości id atrybutu listy element kliknięty).

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