2012-03-23 21 views
11

Chciałbym pokazać mały klip z długiego pliku wideo, który ma ponad 10 minut. Ten segment wideo zaczynałby się od czasu przesunięcia/czasu wyszukiwania wynoszącego 90 sekund i trwałby 45 sekund. Jak mogę to zrobić ?W wideo HTML5, jak odtwarzać mały klip z długiego wideo?

+0

Należy pamiętać, że w ten sposób przeniesiesz cały plik wideo (który może być dość duży pod względem rozmiaru pliku) na urządzenie klienta. Przyjazne dla użytkownika rozwiązanie prawdopodobnie rozwiązałoby to już podczas edycji i dostarczyłoby określony plik, który obejmuje tylko ten fragment. – m90

Odpowiedz

9

Phillip Brown ma rację. możesz to rozwiązać, kontrolując html-player przez js. na przykład w tym przypadku, film będzie autostartu i zagra videofile powinien 00: 10min do 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> 

nie mogą być pewne błędy w nim, ale myślę, będziesz dostać punkt

+0

Ta funkcja nie działa. Wideo zwykle działa na całej długości. – imbenzene

+0

Dzieje się tak, ponieważ @longilong ustawia 'window.onload' na undefined i inne problemy z kodem. Istnieją oczywiste błędy. – Sam

+0

Jeśli użytkownik szybko przewinie do przodu lub do tyłu za pomocą myszy, timer zatrzyma się o określonej godzinie innej niż ta, której się spodziewa. – jRam90

29

Wideo HTML5 obsługuje także specyfikację Media Fragment URI. Umożliwi to określenie tylko fragmentu filmu do odtworzenia. Korzystanie z niego jest dość banalne:

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

Uruchomi wideo w 30-sekundowym znaku i zatrzyma wideo w 45-sekundowym znaku.

+2

Po prostu zauważyłem, że Chrome nadal pobiera resztę filmu. Przerywa film po 45 sekundach, ale użytkownik może wznowić odtwarzanie od tego momentu. Jeśli patrzysz na to jako na ograniczenie ruchu lub odcięcie reszty filmu, to nie jest to twoje rozwiązanie. – villecoder

+0

Aby temu zapobiec musisz pracować z kontrolkami odtwarzacza wideo. Możesz spowodować, że odtwarzacz wideo cofnie się do 30 sekund w filmie, jeśli przycisk odtwarzania zostanie naciśnięty, gdy wideo będzie miało 45 sekund. Byłoby całkiem trywialne, gdybyśmy przeanalizowali fragmenty mediów z src, aby stworzyć taką funkcjonalność. –

+0

Jeśli jest to szeroko obsługiwane we wszystkich głównych przeglądarkach, to powinno być zaakceptowaną odpowiedzią. – TimHayes

Powiązane problemy