2016-01-09 20 views
8

Ho una pagina web che utilizza l'API Youtube Iframe e sono riuscito a cambiare il videoId utilizzando questa riga di codice:Modifica playerVars Youtube iframe dinamicamente

player.loadVideoById(videoId) 

Ma perché il video a ciclo sia videoId e playlist devono corrispondere e quindi ho anche bisogno di cambiare il parametro playlist all'interno dell'oggetto playerVars. Qualcuno potrebbe dirmi un modo semplice per avvicinarsi a questo?

Questo è il codice originale:

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

Ho provato a fissare una variabile come mostrato sotto e cambiato dinamicamente come feci loadVideoById:

player.loadVideoById(videoId) 
currentVideoId = videoId 

e

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

risposta

0

Utilizzare .loadPlaylist() per specificare la playlist e il (numerico) inde x del video (all'interno della playlist) al posto dell'ID video.

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

Questa funzione carica la lista specificata e lo riproduce. L'elenco può essere una playlist, un feed dei risultati di ricerca o un feed video caricato da un utente.

  • L'invio facoltativo listType proprietà specifica il tipo di risultati si nutrono che si sta recuperando. I valori validi sono playlist, search, e user_uploads. Il valore predefinito è playlist.

  • La proprietà list richiesta contiene una chiave che identifica l'elenco particolare di video che YouTube deve restituire.

...

1

Vedi this example fiddle dove due video in due elenchi diversi vengono caricati nella funzione clickEventHandler() (a seconda del valore id attributo della lista oggetto cliccato).

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