¿Cómo puedo hacer eso, para que cada vez que un usuario haga clic en un enlace, reproduzcamos un sonido? Usando javascript y jquery aquí.
javascript
jquery
audio
Haga clic en Upvote
fuente
fuente
.load()
,.play()
en momentos clave, usando la API.Respuestas:
Utilice este complemento: https://github.com/admsev/jquery-play-sound
$.playSound('http://example.org/sound.mp3');
fuente
Pon un
<audio>
elemento en tu página.Obtenga su elemento de audio y llame al
play()
método:document.getElementById('yourAudioTag').play();
Mira este ejemplo: http://www.storiesinflight.com/html5/audio.html
Este sitio descubre algunas de las otras cosas que puedes hacer, como
load()
,pause()
y algunas otras propiedades del elemento de audio.Depende de usted cuándo exactamente desea reproducir este elemento de audio. Lea el texto del botón y compárelo con "no" si lo desea.
Alternativamente
http://www.schillmania.com/projects/soundmanager2/
SoundManager 2 proporciona una API fácil de usar que permite reproducir sonido en cualquier navegador moderno, incluido IE 6+. Si el navegador no es compatible con HTML5, obtiene ayuda de Flash. Si desea estrictamente HTML5 y no flash, hay una configuración para eso, preferFlash = false
Admite audio 100% sin Flash en iPad, iPhone (iOS4) y otros navegadores y dispositivos habilitados para HTML5
El uso es tan simple como:
<script src="soundmanager2.js"></script> <script> // where to find flash SWFs, if needed... soundManager.url = '/path/to/swf-files/'; soundManager.onready(function() { soundManager.createSound({ id: 'mySound', url: '/path/to/an.mp3' }); // ...and play it soundManager.play('mySound'); });
Aquí hay una demostración en acción: http://www.schillmania.com/projects/soundmanager2/demo/christmas-lights/
fuente
Encontré algo así:
//javascript: function playSound( url ){ document.getElementById("sound").innerHTML="<embed src='"+url+"' hidden=true autostart=true loop=false>"; }
fuente
Usando la etiqueta de audio html5 y jquery:
// appending HTML5 Audio Tag in HTML Body $('<audio id="chatAudio"> <source src="notify.ogg" type="audio/ogg"> <source src="notify.mp3" type="audio/mpeg"> </audio>').appendTo('body'); // play sound $('#chatAudio')[0].play();
Código de aquí .
En mi implementación, agregué el audio incrustado directamente en el HTML sin jquery append.
fuente
Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first
ChromeVersion 70.0.3538.102 (Official Build) (64-bit)
... parece ser la solución aquí: stackoverflow.com/a/52821721Administrador de sonido de JavaScript:
http://www.schillmania.com/projects/soundmanager2/
fuente
$('a').click(function(){ $('embed').remove(); $('body').append('<embed src="/path/to/your/sound.wav" autostart="true" hidden="true" loop="false">'); });
fuente
Escribí una pequeña función que puede hacerlo, con la API de Web Audio ...
var beep = function(duration, type, finishedCallback) { if (!(window.audioContext || window.webkitAudioContext)) { throw Error("Your browser does not support Audio Context."); } duration = +duration; // Only 0-4 are valid types. type = (type % 5) || 0; if (typeof finishedCallback != "function") { finishedCallback = function() {}; } var ctx = new (window.audioContext || window.webkitAudioContext); var osc = ctx.createOscillator(); osc.type = type; osc.connect(ctx.destination); osc.noteOn(0); setTimeout(function() { osc.noteOff(0); finishedCallback(); }, duration); };
fuente
Nuevo emergente ... parece ser compatible con IE, navegadores Gecko y iPhone hasta ahora ...
http://www.jplayer.org/
fuente
El siguiente código puede ayudarlo a reproducir sonido en una página web usando solo javascript. Puede ver más detalles en http://sourcecodemania.com/playing-sound-javascript-flash-player/
<script> function getPlayer(pid) { var obj = document.getElementById(pid); if (obj.doPlay) return obj; for(i=0; i<obj.childNodes.length; i++) { var child = obj.childNodes[i]; if (child.tagName == "EMBED") return child; } } function doPlay(fname) { var player=getPlayer("audio1"); player.play(fname); } function doStop() { var player=getPlayer("audio1"); player.doStop(); } </script> <form> <input type="button" value="Play Sound" onClick="doPlay('texi.wav')"> <a href="#" onClick="doPlay('texi.wav')">[Play]</a> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="40" height="40" id="audio1" align="middle"> <embed src="wavplayer.swf?h=20&w=20" bgcolor="#ffffff" width="40" height="40" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> <input type="button" value="Stop Sound" onClick="doStop()"> </form>
fuente
Lo primero es lo primero, no me gustaría eso como usuario.
La mejor manera de hacerlo es probablemente utilizando un pequeño subprograma flash que reproduzca su sonido de fondo.
También se responde aquí: ¿ Forma multiplataforma y entre navegadores para reproducir sonido desde Javascript?
fuente