2011-05-12 14 views
59

Sto provando a riprodurre video HTML5 (codificato VP8). Quello che voglio è suonarlo in una certa posizione. Diciamo a partire da 50 secondi in poi.Avvia il video HTML5 in una posizione particolare durante il caricamento?

Ho provato ma sembra che ci sia qualche problema. Puoi suggerire se c'è qualcosa che sto sbagliando?

Ecco il codice:

<video id="vid1" width="640" height="360"> 
     <source src="file.webm" type="video/webm" /> 
     Your browser does not support the video tag. 
    </video> 
    <script> 
     document.getElementById('vid1').currentTime = 50; 
    </script> 

ho provato ma non funziona. Quando il video si carica, inizia a suonare dall'inizio. Tuttavia se lo chiamo durante la riproduzione, come dopo un po 'di tempo che il video è in riproduzione, funziona bene. C'è qualcosa che mi manca?

+2

Quali browser? Hai provato a ritardare la chiamata qualche millisecondo? Forse ci vorrà un po 'di più per caricare completamente l'elemento video – Andre

risposta

89

È necessario attendere fino a quando il browser non conosce la durata del video prima di poter cercare un determinato orario. Quindi, penso che si vuole attendere il 'loadedmetadata' qualcosa di evento come questo:

document.getElementById('vid1').addEventListener('loadedmetadata', function() { 
    this.currentTime = 50; 
}, false); 
+0

grazie mille, ha funzionato bene in chrome. – Johnydep

+0

Funzione NICE. Tutto in uno ... –

+2

Questo non funziona in Safari. Ho provato anche l'evento loadeddata. Qualche idea? –

36

si può collegare direttamente con Media Fragments URI, basta cambiare il nome del file per file.webm # t = 50

Here's an example

Questo è davvero bello, puoi fare ogni sorta di cose. Ma non conosco lo stato attuale del supporto del browser.

+0

Il supporto del browser è buono. Penso che tutti i browser di supporto HTML5 supportino anche almeno i frammenti di base dei media temporali. –

+1

non supportato in IE, grande problema. –

+0

@michaelhanon, sarebbe piuttosto facile scrivere un polyfill per IE per ottenerlo. Rileva il browser, se non supportato, scomposizione dell'URL, trova il parametro della query, usa Javascript per cambiare l'ora del video ... Potrei farlo se ho una possibilità – gdgr

2

Su Safari Mac per una sorgente HLS, avevo bisogno di utilizzare l'evento loadeddata invece dell'evento metadata.

+0

Penso che il loadmetadata dovrebbe essere l'evento corretto, ma io troppo stava diventando seekable.length 0 (solo in Safari su OSX) a meno che non ho ascoltato per dataloaded. Grazie – Statuswoe

+1

Perché è stato downvoted? Probabilmente non è direttamente correlato all'esempio fornito dall'OP, ma è in realtà accurato e pertinente all'argomento generale della domanda. – JayPea

25

regolare l'inizio e l'ora di fine del video quando si utilizza il tag video in html5;

http://www.yoursite.com/yourfolder/yourfile.mp4#t=5,15

dove ha lasciato delle virgole è il tempo in secondi si avvia, a destra della virgola è ora di fine in secondi. rilascia la virgola e l'ora di fine solo per l'ora di inizio.

+0

la seconda cifra non sembra finire quanta parte del video è stata caricata per cominciare con ... la prima cifra ha funzionato. qualche idea? – Martian2049

3

L'utilizzo di un frammento #t=10,20 ha funzionato per me.

+1

Non supportato in IE !!!!!! –

+0

la seconda cifra non sembra finire quanta parte del video è stata caricata per cominciare con ... la prima cifra ha funzionato. qualche idea? – Martian2049

25

SENZA utilizzando JavaScript

basta aggiungere #t=[(start_time), (end_time)] alla fine dell'URL media. L'unica battuta d'arresto (se vuoi vederla in questo modo) è necessario sapere per quanto tempo il tuo video indicherà l'ora di fine. Esempio:

<video> 
    <source src="splash.mp4#t=10,20" type="video/mp4"> 
</video> 

Note: Non supportato in IE

+1

Non supportato in IE !!!!!! –

+1

Confermato che non funziona in IE == Problema Explorer –

+0

la seconda cifra non sembra finire quanto del video è stato caricato per cominciare con ... la prima cifra ha funzionato. qualche idea? – Martian2049

Problemi correlati