2016-07-28 30 views
2

Ich arbeite mit der Youtube Javascript API (Iframe-Version) und ich verwende start und end Parameter, um nur einen Teil eines Videos zu spielen. Während alles gut funktioniert, sobald der end erreicht ist, stoppt der Player (normales Verhalten). Wenn Sie jedoch erneut auf abspielen, scheint der Player die Option start nicht zu berücksichtigen. Es beginnt immer am Anfang des Videos neu zu spielen. Es endet jedoch immer bei dem definierten end Wert.Youtube Javascript API: Start Parameter funktioniert nicht auf Wiedergabe

<iframe frameborder="0" src="https://www.youtube.com/embed/5lGoQhFb4NM?autoplay=1&autohide=1&modestbranding=1&showinfo=0&controls=0&vq=hd720&rel=0&start=60&end=100" style="width: 100%; height: 400px;"></iframe> 

Haben Sie eine Idee, warum es passiert?

+0

Was haben Sie am Ende tun ? – httpete

+0

@httpete Nun, da ich ursprünglich Angular benutzte, benutzte ich https://github.com/brandly/angular-youtube-embed, was mir erlaubte, den iframe mit dem Event 'youtube.player.ended 'neu zu laden. Wenn Sie interessiert sind, werde ich meine Lösung hier als Antwort posten, lass es mich wissen :) – lkartono

Antwort

0

Hier ist, wie ich in der Lage war, die Replay-Taste hat an der ursprünglichen start Zeit beginnen, sowie zu verhindern, dass Benutzer außerhalb der Start-/Ende Grenzen der playerVars von Scrolling:

function onPlayerStateChange(event) { 

    var isClip = playerOptions.playerVars.start && playerOptions.playerVars.end; 
    var start = isClip ? playerOptions.playerVars.start : null; 
    var end = isClip ? playerOptions.playerVars.end : null; 

    if (event.data == YT.PlayerState.PLAYING) { 
    if (isClip) { 
     var currentTime = event.target.getCurrentTime(); 
     if (currentTime < start || currentTime > end) { 
     event.target.seekTo(playerOptions.playerVars.start); 
     } 
    } 

    } 

}