Chcę, aby w przypadku wystąpienia określonego zdarzenia moja witryna internetowa odtwarzała użytkownikowi krótki dźwięk powiadomienia.
Dźwięk nie powinien uruchamiać się automatycznie (natychmiast) po otwarciu strony internetowej. Zamiast tego powinien być odtwarzany na żądanie za pośrednictwem JavaScript (gdy wystąpi określone zdarzenie).
Ważne jest, aby działało to również w starszych przeglądarkach (IE6 i inne).
Zasadniczo istnieją dwa pytania:
- Jakiego kodeka powinienem użyć?
- Jaka jest najlepsza praktyka przy osadzaniu pliku audio? (w
<embed>
porównaniu<object>
z Flash vs.<audio>
)
Odpowiedzi:
To rozwiązanie działa na prawie wszystkich przeglądarkach (nawet bez zainstalowanego Flasha):
Wsparcie przeglądarki
<audio>
(Nowoczesne przeglądarki)<embed
> (Zastępcza)Używane kody
źródło
Od 2016 r. Wystarczą następujące elementy (nie musisz nawet osadzać):
Zobacz więcej tutaj .
źródło
Uncaught (in promise) DOMException
Jeszcze jedna wtyczka do odtwarzania dźwięków powiadomień na stronach internetowych: Ion.Sound
Zalety:
Skonfiguruj wtyczkę:
źródło
Co powiesz na odtwarzacz multimedialny Yahoo? Po prostu umieść bibliotekę Yahoo?
I używaj go jak
Aby automatycznie uruchomić
źródło
display: none
, nie będzie już odtwarzać dźwięku. Biblioteka multimediów Yahoo wyświetla również małą ikonę „odtwarzania” po lewej stronie łącza.visiblity: hidden;
to twoja odpowiedźOdtwarzaj powiadomienia kompatybilne z różnymi przeglądarkami
Zgodnie z radą @Tim Tisdall z tego postu, sprawdź wtyczkę Howler.js .
Przeglądarki takie jak Chrome wyłączają
javascript
wykonywanie, gdy są zminimalizowane lub nieaktywne w celu poprawy wydajności . Ale to odtwarza dźwięki powiadomień, nawet jeśli przeglądarka jest nieaktywna lub zminimalizowana przez użytkownika.Nadzieja pomaga komuś.
źródło
sound.play()
? Czy Howler umieszcza wszystkie twoje setTimeouts w opakowaniu?Użyj pliku audio.js, który jest wypełnieniem dla
<audio>
tagu z funkcją flashback .Ogólnie rzecz biorąc, spójrz na https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills, aby znaleźć polyfills do interfejsów API HTML 5 ... ( zawiera więcej
<audio>
polyfills )źródło
jeśli chcesz wywołać zdarzenie w kodzie Najlepszym sposobem na to jest utworzenie wyzwalacza ponieważ przeglądarka nie odpowie jeśli użytkownika nie ma na stronie
teraz możesz aktywować przycisk, gdy chcesz odtwarzać dźwięk
źródło
ten kod pochodzi z talkerscode Aby zobaczyć pełny samouczek, odwiedź http://talkerscode.com/webtricks/play-sound-on-notification-using-javascript-and-php.php
źródło
Możemy po prostu użyć razem Audio i obiektu, na przykład:
a nawet dodając
addEventListener
dlaplay
iended
źródło
Napisałem czystą funkcjonalną metodę odtwarzania dźwięków:
źródło