2012-02-03 21 views
7

Możliwe jest połączenie z konkretną godziną w filmie w YouTube, dołączając składnię #t=1m49s.Odsyłacze do określonych czasów w YouTube iframe embed

Czy jest możliwe umieszczenie linków na tej samej stronie osadzania, które powoduje, że wideo przeskakuje do różnych czasów w filmie?

<a href="">Link to 1 minutes 10 seconds</a> 
<a href="">Link to 3 minutes 4 seconds</a> 
<a href="">Link to 5 minutes 10 seconds</a> 
etc.. 

Odpowiedz

8

Goran opublikował referencję API. Poleciłbym to sprawdzić. Oto podstawowy kod tego, czego szukasz. Ja skomentował główne części:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>  
<script> 
    //this function gets called when the player is ready  
    function onYouTubePlayerReady (playerId) { 
     ytplayer = document.getElementById("myytplayer"); 
     console.log(ytplayer); 
    } 
    //generic seekTo function taking a player element and seconds as parameters  
    function playerSeekTo(player, seconds) { 
     player.seekTo(seconds); 
    } 
</script> 

<div id="ytapiplayer"> 
    You need Flash player 8+ and JavaScript enabled to view this video. 
</div> 
<br/> 
<a href="#" onclick="playerSeekTo(ytplayer, 70); return false;">Link to 1 minutes 10 seconds</a> 
<a href="#" onclick="playerSeekTo(ytplayer, 90); return false;">Link to 1 minutes 30seconds</a> 
<a href="#" onclick="playerSeekTo(ytplayer, 110); return false;">Link to 1 minutes 50 seconds</a> 

Teraz JS:

var ytplayer; 

$(document).ready(function() { 
    swfobject.embedSWF("//www.youtube.com/e/Py_IndUbcxc?enablejsapi=1&playerapiid=ytplayer &version=3", 
    "ytapiplayer", // where the embedded player ends up 
    "425", // width  
    "356", // height  
    "8", // swf version  
    null, 
    null, { 
     allowScriptAccess: "always" 
    }, { 
     id: "myytplayer" // here is where the id of the element is set 
    }); 

}); 

Here to skrzypce, które stworzyłem.

+0

Dzięki za pomoc! Jednak nie wydaje mi się, żeby to działało. Czy mógłbyś zapewnić Jsfiddle? Dziękuję Ci! – bookcasey

+1

@ bookcasey Zaktualizowałem kod w oryginalnej odpowiedzi i dodałem działające skrzypce. Daj mi znać, jeśli masz jakieś pytania. – sinemetu1

+1

Ci, którzy używają Firefoksa, skrzypce nie są zepsute, tylko wyświetla film po wyświetleniu wyniku w osobnym oknie. – lulalala

2

Chociaż nie mam osobistych doświadczeń w realizacji JavaScript z emdedded filmów z YouTube, ja wiem, że YouTube posiada interfejs API JavaScript do wykonywania takich czynności. Funkcja szukasz jest .seekTo()

http://code.google.com/apis/youtube/js_api_reference.html#seekTo

Z fajną demo here.

+0

Jeśli chcesz użyć iframe osadzić zamiast HTML Flash, dokumentacja na to co https://developers.google. com/youtube/iframe_api_reference – DavGarcia

0

Zastosowanie ?start=xyz (sekundy)

Na przykład:

<iframe src="http://www.youtube.com/embed/vDFuzhnTegc?start=1778" width="420" height="235"></iframe> 
Powiązane problemy