A pesar de no ser una funcionalidad muy utilizada, el lenguaje HTML presta soporte para la inclusión de fondos musicales en la página de forma relativamente sencilla.
Con el IE utilizamos en este caso un objeto no estándar del modelo de objetos del HTML: el bgsound , específico para insertar ficheros musicales de fondo. Este elemento es accesible a través del document.all del Internet Explorer, lo que nos permite asignarle de forma dinámica un fichero musical. El inconveniente es que sólo está soportado a partir de las versiones 4 de este navegador.
En el caso de los navegadores de Netscape hay que recurrir al objeto embed , que permite embeber en la página el fichero musical.
La activación y desactivación del sonido también es diferente en cada caso. Para el Netscape, basta con usar los métodos play() y stop() del objeto embebido. Pero para el IE hay que usar un pequeño truco, consistente en asignar un fichero de música sin sonido (en este caso, el fichero silencio.mid) al objeto bgsound . Algo enrevesado, pero que funciona de maravilla. Compruebalo con nuestro ejemplo.
El ejemplo incluye la forma de hacer que el sonido se inicie al poner el puntero del ratón sobre un enlace, y se pare al quitarlo del mismo.
Este script debe ir entre las tags <head> y </head> de la página:
<script language="javascript" type="text/javascript">
//MUSICA EN LA PAGINA
//Autor: Iván Nieto Pérez
//Este script y otros muchos pueden
//descarse on-line de forma gratuita
//en El Código: www.elcodigo.com
//deteccion de versiones
ver = parseInt(navigator.appVersion)
//internet explorer
ie4 = (ver>3 && navigator.appName!="Netscape")?1:0
//netscape
ns4 = (ver>3 && navigator.appName=="Netscape")?1:0
ns3 = (ver==3 && navigator.appName=="Netscape")?1:0
//reproduccion del sonido
function reproducir() {
//para el IE se asigna el fichero musical al objeto bgsound
if (ie4) document.all['cancion'].src='/ejemplos/javascript/spring.mid'
//para el netscape se usa el metodo play() del objeto embed
if ((ns4||ns3) && navigator.javaEnabled() && navigator.mimeTypes['audio/x-midi'] && self.document.musica.IsReady() ) {
self.document.musica.play()
}
}
//detencion de la reproduccion
function detener() {
//detenemos el sonido asignando un fichero musical sin sonido
if (ie4) document.all['cancion'].src='/ejemplos/javascript/silencio.mid'
//para el netscape, el metodo stop() detiene el sonido
if ((ns4||ns3) && navigator.javaEnabled() && navigator.mimeTypes['audio/x-midi'] ) {
self.document.musica.stop()
}
}
</script>
Es necesario añadir el siguiente código a la página HTML, entre <body> y </body> :
<BGSOUND id="cancion" LOOP=1 SRC="/ejemplos/javascript/silencio.mid"><EMBED NAME="musica" SRC="/ejemplos/javascript/spring.mid" LOOP=FALSE AUTOSTART=FALSE HIDDEN=TRUE MASTERSOUND><form name="formulario"><p><input type="button" value="Reproducir" onClick="reproducir()"><br><input type="button" value="Detener" onClick="detener()"></p></form><p><a href="#" onClick="return false" onMouseOver="reproducir(); return true" onMouseOut ="detener(); return true">Pon el puntero sobre este enlace para reproducir la canción</a></p>
Usuarios que han visto este tema también han visto...
- Precarga de imagenes en Javascript
- Obligar a rellenar los campos en JavaScript
- Efecto Nieve
- Previsualizar una imagen antes de subirla en JavaScript
- Reordenar lista mediante mootools con Javascript
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.