Via onderstaande code bestuur ik mijn playlist op mijn site, al dan niet via url.
Alles werkt totdat ik via een # een filmpje aanroep (dus de pagina herlaadt),
dan krijg ik deze error
Uncaught TypeError: undefined is not a function
deze gaat over regel "'onStateChange': onPlayerStateChange".
Hoe komt dit en wat doe ik fout?
Groeten knipper.
/*===youtube playlist===*/
function onPlayerStateChange(event) {
switch(event.data) {
case YT.PlayerState.ENDED:
$("#header_favicon").attr("href","main/icon/favicon/favicon.ico");
//video is ten einde, triger volgende clip
var ps = $("#playlist_herhaal").val();
if(ps == 'alles') {
var vidId_next = $('.playlist .active').next().attr('id');
open_youtube(vidId_next);
} else if(ps == 'dit') {
var vidId_next = $('.playlist .active').attr('id');
open_youtube(vidId_next);
}
break;
case YT.PlayerState.PLAYING:
$("#header_favicon").attr("href","main/icon/favicon/favicon_play.ico");
break;
case YT.PlayerState.PAUSED:
$("#header_favicon").attr("href","main/icon/favicon/favicon_pause.ico");
break;
case YT.PlayerState.BUFFERING:
$("#header_favicon").attr("href","main/icon/favicon/favicon.ico");
break;
case YT.PlayerState.CUED:
$("#header_favicon").attr("href","main/icon/favicon/favicon.ico");
break;
}
}
/*Bedien youtube*/
function open_youtube(vidId) {
if(vidId != 'undefined') {
window.location.hash = 'yt_' + vidId;
$('#muziekplayer').html('<iframe id="player_'+vidId+'" width="100%" height="315" src="http://www.youtube.com/embed/' + vidId + '?enablejsapi=1&autoplay=1&autohide=1&showinfo=0" frameborder="0" allowfullscreen></iframe>');
$('.playlist .muziek').removeClass('active');
$('#' + vidId).addClass('active');
new YT.Player('player_'+vidId, {
events: {
'onStateChange': onPlayerStateChange
}
});
} else {
$('#muziekplayer').html('');
}
$('.playlist .muziek').removeClass('active');
$('#' + vidId).addClass('active');
}
/*Truger via knoppen in menu*/
jQuery('.playlist .muziek').click(function() {
var vidId = $(this).attr('id');
open_youtube(vidId);
});
/*auto trigger via url #(hash)*/
var hash = window.location.hash;
var substr = hash.split('_');
if(substr[0] == '#yt') {
$('#' + substr[1]).click();
}