• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy istnieje możliwość odtworzenia, np. pierwszych 3 minut filmiku, który w całości trwa ok 20 minut?

VPS Starter Arubacloud
0 głosów
343 wizyt
pytanie zadane 26 października 2015 w JavaScript przez Krzysiek_34 Mądrala (6,140 p.)

Filmik jest odtwarzany w całości bez problemu. Czy istnieje możliwość odtworzenia, np. pierwszych 3 minut tego filmiku, który w całości trwa ok 20 minut? Po 3 minutach odtwarzanie ma zostać zatrzymane (pause albo definitywny stop). Niestety filmik nie zatrzymuje się po 3 minutach.

Mam taki kod:

<video width="640" height="360" controls>
	<source src="filmik.webm" type="video/webm">
</video>
<script type="text/javascript">
	var video = document.getElementById('video');
		if (video.duration > 180000) video.pause();
</script>

Gdzie w kodzie jest błąd?

3 odpowiedzi

+2 głosów
odpowiedź 26 października 2015 przez writen Nałogowiec (29,060 p.)
wybrane 27 października 2015 przez Krzysiek_34
 
Najlepsza

A co wy tu wyprawiacie?

Wystarczy użyć zdarzenia timeupdate:

video.ontimeupdate = function() {
                if (video.currentTime> 180) {
					video.load();
				}
            };

Dzięki użyciu metody load(), film załaduje się od nowa i będzie można go odtworzyć od początku.

komentarz 26 października 2015 przez Krzysiek_34 Mądrala (6,140 p.)

Ten zapis jest perfekcyjny. Teraz działa jak należy.smiley

Wielkie dzięki, mistrzu.

Pozostałym chłopakom też wielkie dzięki za próbę pomocy i prawie skuteczny efekt.

 

Temat zamknięty.

komentarz 27 października 2015 przez criss Mędrzec (172,590 p.)
Wrzuć witenowi najlepszą odpowiedź, jeśli ci pomógł. Btw, temat nie wygląda na zamknięty :P
+1 głos
odpowiedź 26 października 2015 przez Ivan Maniak (60,650 p.)
edycja 26 października 2015 przez Ivan
<video width="640" height="360" controls id="video">
    <source src="filmik.webm" type="video/webm">
</video>

Może nie dodałeś id do video?

Dodatkowo ty sprawdzasz czy film jest odtwarzany ponad 3 min w momencie wejścia na strone. Musisz znaleźć sposób aby sprawdzić [PODCZAS OGLADANIA] czy film jest już odtwarzany ponad 3 min, a z tym już Ci nie pomogę.

komentarz 26 października 2015 przez Krzysiek_34 Mądrala (6,140 p.)
Dodałem id do video tak jak napisałeś, ale niestety filmik dalej odtwarzany jest w całości.
0 głosów
odpowiedź 26 października 2015 przez Mlody89 Mądrala (6,920 p.)
edycja 26 października 2015 przez Mlody89
A nie powienieneś raczej użyć get ElementsByTagName albo dodać do elementu wideo id="video" a w kodzie js ('video') ?  Edit.Sory nie zauwazyłem że ktoś już na to wpadł :P
komentarz 26 października 2015 przez Krzysiek_34 Mądrala (6,140 p.)

Teraz działa i jest prawie idealnie. smiley

Aktualnie mam taki kod:

<video width="640" height="360" controls id="video">
	<source src="filmik.webm" type="video/webm">
</video>
<script type="text/javascript">
	var video = document.getElementById('video'),
	stop=function()
	{
		if(video.currentTime > 180)
			video.pause();
		setTimeout(stop,1000);
	}
	stop();
</script>

Filmik jest odtwarzany od 00:00:00 - 00:03:00 i zatrzymuje się w formie pauzy, ale gdy następnie wcisnę PLAY - to odtwarza dalszy filmik przez ok 500ms i zatrzymuje się, wcisnę PLAY - odtwarza dalszy filmik przez ok 500ms i zatrzymuje się itd itd.

Już na 95% jest idealnie.smiley

Co należy poprawić w kodzie, aby w momencie odtwarzania 3 minuty, filmik zatrzymał się w formie stopu, a nie pauzy?

Może zamiast video.pause wpisać video.stop?

komentarz 26 października 2015 przez Mlody89 Mądrala (6,920 p.)

Jest tak prawdopodobnie dlatego, że co sekunde jest wywoływana funkcja stop a od trzeciej minuty jest spełniony warunek (video.currentTime > 180), narazie nie wpadłem na nic lepszego niż rozwinięcie warunku czyli

if ( video.currentTime > 180 && video.currentTime < 180.9)

 

komentarz 26 października 2015 przez 0e85dc6eaf Dyskutant (8,840 p.)
Ale co chcesz zrobić, odtwarzać od nowa, kontynuować czy zablokować odtwarzanie?
komentarz 26 października 2015 przez Krzysiek_34 Mądrala (6,140 p.)
Definitywnie zablokować odtwarzanie.
komentarz 26 października 2015 przez 0e85dc6eaf Dyskutant (8,840 p.)

Może dodaj do ifa pod video.pause()

video.addEventListener("play",function(){video.pause();});

 

Podobne pytania

92,832 zapytań

141,777 odpowiedzi

320,824 komentarzy

62,163 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...