funkcja JS nie uruchamia filmu

funkcja JS nie uruchamia filmu
G2
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 6 lat
  • Postów:4
0
Kopiuj
<script type="text/javascript">
var ile=1189;
var myVideo = document.getElementById("pv_video");
 
			function stoper()
			{
			if ((ile % 20)==0 ) myVideo.play()
			ile--;
			}
 
			function playVid() 
                          { 
                            myVideo.play(); 
			  } 
 
var intervalHandler=setInterval(stoper,1000);
 
 
</script>

Witam. mam problem z tym że funkcja stoper nie uruchamia w ogóle filmu a ma uruchamiać co 20 sekund. Jednakże po uruchomieniu przez "button" i przypisaną mu funkcję playVid film jest odtwarzany a funkcja stoper zaczyna wtedy działać. Skąd taki problem?

Freja Draco
Freja Draco
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Nie wiem, czemu nie uruchamia, ale nie wiem też, dlaczego nie ustawisz po prostu setInterval(stoper,20000);


LukeJL
  • Rejestracja:ponad 11 lat
  • Ostatnio:3 minuty
  • Postów:8449
1

Czy konsola pokazuje jakieś błędy?


DE
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:50
0

Ten skrypt który, wkleiłeś musi działać. Jeśli działa function playVid(), to i funkcja stoper musi zadziałać.
Dlaczego ta funkcja stoper jest tak dziwnie napisana ?. dokładniej chodzi mi o warunek

Kopiuj
var ile=1189;
if ((ile % 20)==0 )

dlaczego nie można było zrobić tak jak pisze:

Freja Draco napisał(a):

dlaczego nie ustawisz po prostu setInterval(stoper,20000);

Ewentualnie, jak już to wartość "ile" ustawić na zero. a w funkcji sort zmienną "ile" zamiast zmniejszać o jeden, to zwiększać ?. Zakładam oczywiście, że ktoś by mógł sobie pomyśleć, że setInterval wykonuj się tylko co sekundę i on nie ma na to wpływu. Co jest mało prawdopodobne. Wygląda mi to na jakąś specjalną obfuskacje. Skąd masz ten kod, że tak zapytam z ciekawości.

edytowany 1x, ostatnio: debug
Haskell
  • Rejestracja:około 10 lat
  • Ostatnio:około rok
  • Postów:4700
0

Dlaczego ten kod jest napisany jakby był 2009 rok? Obecnie wszystkie przeglądarki wspierają es6 a nawet lepiej. Gdybym nawet chciał wspierać użytkowników z jakiegoś smutnego korpo, którzy pracują jeszcze na IE7 to jest Babel.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
G2
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 6 lat
  • Postów:4
0

Kod tylko na próbę wzięty z innego skryptu i byle jak przerobiony. Chodzi mi tylko o sam fakt, że funkcja stoper nie uruchamia filmiku a kliknięcie w przycisk i wywołanie funkcji playVid odtwarza filmik. Problem w połowie rozwiązany po dodaniu w html "muted"
```html
<video id="pv_video" width="640" muted="muted">

<source src="/media/files/P14/3505.mp4" type="video/mp4"> Your browser does not support HTML5 video. </video> ``` Czyli chodzi o blokadę autoodtawrzania w przeglądarce? Nie wiem jak zrobić żeby działało z dźwiękiem
edytowany 4x, ostatnio: grxeda2
Freja Draco
Freja Draco
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1
grxeda2 napisał(a):

Czyli chodzi o blokadę autoodtawrzania w przeglądarce? Nie wiem jak zrobić żeby działało z dźwiękiem

Spekuluję, ale to może być prawidłowa interpretacja. Przeglądarki ostatnio starają się coraz agresywniej blokować autoodtwarzanie.


dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
0

Tak, to jest właściwość przeglądarek. Wymuszone odtwarzanie możesz zrobić reakcji na event użytkownika (np. kliknięcie), a nie możesz zrobić automatycznie. Wiele innych rzeczy jest tak blokowane, np. otwieranie rzeczy w nowej karcie/oknie.

Nie wiem jak zrobić żeby działało z dźwiękiem

Nie da się. Jeżeli wideo generuje hałas to musisz wstawić jakiś przycisk PLAY, żeby zachęcić użytkownika do kliknięcia i to wszystko


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.