Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ JavaScript _ Problem z odtwarzaniem dźwięku w przeglądarce

Napisany przez: adrianpl20 16.02.2019, 13:36:46

Witam. Mam problem z odtwarzaniem krótkiego dźwięku w przeglądarce po wystąpieniu jakiejś akcji. Dźwięk działa, dopiero gdy kliknę na cokolwiek na stronie, a gdy wejdę na stronę/odświeżę ją i nic nie kliknę, to dźwięku nie słychać. Nie mam pojęcia co to może być, próbowałem robić coś w stylu .focus() i .click() na pierwszym elemencie obejmującym całą stronę (#page), a także na obiekcie "window", ale nic to nie pomogło.

[JAVASCRIPT] pobierz, plaintext
  1. function playSound() {
  2. var mp3Source = '<source src="/media/sound1.mp3" type="audio/mpeg">';
  3. var embedSource = '<embed hidden="true" autostart="true" loop="false" src="/media/sound1.mp3">';
  4. document.getElementById('sound-container').innerHTML = '<audio autoplay="autoplay">' + mp3Source + embedSource + '</audio>'; // #sound-container to pusty div na samym końcu strony
  5. }
[JAVASCRIPT] pobierz, plaintext


Próbowałem też używać tego kodu z internetu (oczywiście po odpowiednim dopasowaniu do swojej struktury):
var media = document.getElementById("YourVideo");
[JAVASCRIPT] pobierz, plaintext
  1. const playPromise = media.play();
  2. if (playPromise !== null){
  3. playPromise.catch(() => { media.play(); })
  4. }
[JAVASCRIPT] pobierz, plaintext

ale nic to nie zmieniło, a dodatkowo catch() wykonywało się non stop i przeglądarkę mi zawieszało biggrin.gif

Oczywiście próbowałem też odtwarzania przez klasę Audio, ale w konsoli wywala mi błąd "Uncaught (in promise) DOMException"
[JAVASCRIPT] pobierz, plaintext
  1. var audio = new Audio('audio_file.mp3');
  2. audio.play();
[JAVASCRIPT] pobierz, plaintext


Ktoś coś wie? smile.gif

Napisany przez: trueblue 16.02.2019, 14:46:44

https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

Napisany przez: adrianpl20 21.02.2019, 20:23:08

Więc jak to ominąć? Facebook, Badoo i inni radzą sobie jakoś z tym, ale nie mogę tego znaleźć w ich kodzie.
Player SWF raczej odpada. Chciałbym dźwięk odtwarzać gdy przyjdzie nowa wiadomość do użytkownika, ale chciałby by to działało od razu (bez komplikacji), a nie dopiero gdy użytkownik kliknie w coś na stronie.

ktoś coś? biggrin.gif

Napisany przez: trueblue 21.02.2019, 21:10:23

Po pierwszej interakcji z użytkownikiem pozostałe dźwięki można odtwarzać z kodu.

Napisany przez: gitbejbe 26.02.2019, 01:41:39

ja pie****.... chyba od roku głowie się co jest nie tak z moim banerem video na stronie, że filmik nie odpala się przy pierwszej wizycie. Ile ja się nakombinowałem... w końcu się poddałem, w niemocy zrzuciłem wine na wordpressa bo już na nic innego nie szło i odłożyłem problem... a tutaj chodziło o dodanie "muted" exclamation.gif! Filmik jest bez dźwięku, za cholere bym tego nie obczaił. Ja pitole dobrze ze to przeczytałem ! haha

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)