sonido - ¿Reproducir notificaciones sonoras usando Javascript?
sonido notificacion javascript (10)
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>
¿Cómo puedo hacer eso, así que cada vez que un usuario hace clic en un enlace, se reproduce un sonido? Usando javascript y jquery aquí.
Encontrado algo como eso:
//javascript:
function playSound( url ){
document.getElementById("sound").innerHTML="<embed src=''"+url+"'' hidden=true autostart=true loop=false>";
}
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);
};
JavaScript Sound Manager:
Lo primero es lo primero, no me gustaría eso como usuario.
La mejor manera de hacerlo es probablemente usar un pequeño applet de flash que reproduzca tu sonido en segundo plano.
También se responde aquí: ¿ Forma de navegación cruzada entre navegadores para reproducir sonido desde Javascript?
Nuevo emergente ... parece ser compatible con IE, Gecko browsers y iPhone hasta ahora ...
Pon un elemento <audio>
en tu página.
Obtenga su elemento de audio y llame al método play()
:
document.getElementById(''yourAudioTag'').play();
Mira este ejemplo: http://www.storiesinflight.com/html5/audio.html
Este sitio descubre algunas de las otras cosas interesantes que puede hacer, como load()
, pause()
y algunas otras propiedades del elemento de audio.
Cuando exactamente quieres jugar, este elemento de audio depende de ti. 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 que el sonido se reproduzca en cualquier navegador moderno, incluido IE 6+. Si el navegador no es compatible con HTML5, recibe ayuda de flash. Si desea un HTML5 estricto y sin flash, existe una configuración para eso, prefieraFlash = falso
Admite audio 100% sin flash en iPad, iPhone (iOS4) y otros dispositivos habilitados para HTML5 + navegadores
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 de esto en acción: http://www.schillmania.com/projects/soundmanager2/demo/christmas-lights/
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 desde aquí .
En mi implementación agregué el audio incrustado directamente en el HTML sin agregar jquery.
https://github.com/admsev/jquery-play-sound
$ .playSound ('' http://example.org/sound.mp3 '');
$(''a'').click(function(){
$(''embed'').remove();
$(''body'').append(''<embed src="/path/to/your/sound.wav" autostart="true" hidden="true" loop="false">'');
});