2012-03-23 14 views
11

Mi piacerebbe mostrare una piccola clip da un lungo file video lungo più di 10 minuti. Questo segmento di video inizierà alla volta sfalsata/tempo di ricerca di 90 secondi e avrà una durata di 45 secondi. Come lo posso fare ?In HTML5 Video, come riprodurre una piccola clip da un video lungo?

+0

Si noti che in questo modo si trasferirà l'intero video (che potrebbe essere piuttosto grande in termini di file) sul dispositivo del cliente. Un approccio user-friendly probabilmente risolverebbe questo già in fase di editing e fornirà un file specifico che copre solo lo snippet. – m90

risposta

9

Phillip Brown ha ragione. puoi risolvere questo problema controllando yout html-player tramite js. per esempio in questo caso, il video sarebbe autostart e giocherà il file video deve 00: 10min a 00: 40min

<video id="yourVideoplayer" width="640" height="480" preload="auto"> //preload="auto" buffers the video if initialize. you cannot seek a video which isn t buffering already 
    <source src="test.mp4" type="video/mp4" /> 
    <source src="test.ogv" type="video/ogg" /> 
    This browser is not compatible with HTML 5 
</video> 

<script type="text/javascript"> 
    window.onload = playVideoTeaserFrom(10,40); //this event will call the function after page was loaded 

    function playVideoTeaserFrom (startTime, endTime) { 
     var videoplayer = document.getElementById("yourVideoplayer"); //get your videoplayer 

     videoplayer.currentTime = starttime; //not sure if player seeks to seconds or milliseconds 
     videoplayer.play(); 

     //call function to stop player after given intervall 
     var stopVideoAfter = (endTime - startTime) * 1000; //* 1000, because Timer is in ms 
     setTimeout(function(){ 
      videoplayer.stop(); 
     }, stopVideoAfter); 

    } 
</script> 

ci potrebbe essere qualche bug in esso, ma credo che si otterrà il punto

+0

Questa funzione non sembra funzionare. Il video è normalmente in esecuzione a tutta lunghezza. – imbenzene

+0

Ecco perché @longilong imposta 'window.onload' a undefined e altri problemi con il codice. Ci sono bug evidenti. – Sam

+0

Se l'utente avanza velocemente o riavvolge con il mouse, il timer si fermerà in un dato momento diverso da quello che si aspetta. – jRam90

29

Il video HTML5 supporta anche la specifica Media Fragment URI. Ciò ti consentirà di specificare solo un segmento del video da riprodurre. Usarlo è abbastanza banale:

<source src="video.mp4#t=30,45" type="video/mp4"/> 

inizierà il video alla seconda boa 30 e mettere in pausa il video alla seconda boa 45.

+2

Solo una nota che ho notato che Chrome continua a scaricare il resto del video. Mette in pausa il video a 45 secondi, ma un utente può riprendere la riproduzione da quel punto. Se stai osservando questo come un mezzo per limitare il traffico o per tagliare il resto di un video, questa non è la soluzione. – villecoder

+0

Avrai bisogno di lavorare con i controlli del lettore video per evitare questo. È possibile far tornare il video player a 30 secondi nel video se si preme il pulsante di riproduzione quando il video è al segno di 45 secondi. Sarebbe piuttosto banale analizzare i frammenti dei media fuori dalla src per rendere questo tipo di funzionalità. –

+0

Se questo è ampiamente supportato in tutti i principali browser, dovrebbe essere la risposta accettata. – TimHayes

Problemi correlati