Foros del Web » Programando para Internet » Javascript »

Poner/quitar sonido de fondo

Estas en el tema de Poner/quitar sonido de fondo en el foro de Javascript en Foros del Web. Me gustaría poner un sonido de fondo en mi página, pero que aparezcan dos botones, uno para empezar la música y otro para pararla. También ...
  #1 (permalink)  
Antiguo 18/05/2003, 10:57
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
Poner/quitar sonido de fondo

Me gustaría poner un sonido de fondo en mi página, pero que aparezcan dos botones, uno para empezar la música y otro para pararla. También me gustaría que al cargar la pagina por defecto ésta se reproduciera. Me he trasteado un código que obviamente no funciona (entre otras cosas, al dar al botón de escuchar o para se cuelga el navegador):

<script language="Javascript">
function musica(a){
document.write("<bgsound src=" + a + " loop=infinite>");
return false;
}
</script>
<input type="button" value="Escuchar música" onClick="musica('exorcista.mid'); return false">
<input type="button" value="Parar música" onClick="musica(''); return false">

A ver si podeis ayudarme...
Salu2
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #2 (permalink)  
Antiguo 18/05/2003, 11:04
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola ferny:

Acabo de responder en otro tema algo muy parecido.
Aquí tienes el enlace.

Hace un par de años, hemos trabajado con KarlanKas un sistema que usa un frame invisible, y es como pongo la música en mi página de caricaturas.

Si te sirve algumo de los sistemas, pero quieres personalizarlo o modificarlo, avísame, y nos ponemos en ello.

Saludos
  #3 (permalink)  
Antiguo 18/05/2003, 11:18
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola, ferny.

Me he entretenido haciendo unas pruebas y se me ha adelantado caricatos (Hola ). Bueno... ya que lo tengo te lo pongo por si te sirve:
Código PHP:
<body>
<
bgsound id="mus" src="canyon.mid" loop="infinite">
<
input type="button" value="Escuchar música" onClick="mus.src='canyon.mid'">
<
input type="button" value="Parar música" onClick="mus.src=''">
</
body
Saludos,
  #4 (permalink)  
Antiguo 18/05/2003, 15:45
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
El código de JavierB funcionó a la primera
Igualmente doy las gracias a caricatos por las molestias que se tomó
Ahora bien, me gustaría complicarlo un poco
Este código va en Opera y IExplorer, pero Netscape usa <embed>
¿Se podría detectar el browser y usar uno u otro código?
Gracias
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #5 (permalink)  
Antiguo 19/05/2003, 00:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola ferny:

No sabía que bgsound funcionara con opera, hasta hace poco solo valía en explorer, pero embed es lo estandar y funciona también en explorer...

Para detectar explorer suelo usar if (document.all)..., y creo que opera también lo usa.

Saludos
  #6 (permalink)  
Antiguo 19/05/2003, 03:20
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
Pues sí, bgsound va en Opera 7 al menos...
Lo que pasa es que en ese no funciona el botón de parar música.
El problema de poner embed es que el explorer (no se si también el opera) te saca los mandos del reproductor... aunque ahora que lo pienso... si le damos de altura y anchura 0 píxeles no debería mostrarlo...

O sea si pongo if(document.all) {...} es como si dijera que el explorador es explorer u opera, y entonces else {...} sería para el nescafé...

Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #7 (permalink)  
Antiguo 19/05/2003, 03:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

La etiqueta embed tiene el atributo hidden=true/false...
Cuando usas hidden=true no muestra los controles...

No sé si te has fijado en el enlace que te había puesto, donde la solución es la que uso en mi galería de caricaturas, y sé que funciona bien en los tres navegadores.

Bueno, cuando lo termines, a ver si nos avisas, y nos muestras lo que has hecho...

Saludos
  #8 (permalink)  
Antiguo 19/05/2003, 03:58
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
La verdad es que como la discusión era de tres páginas no me paré a leerlo...
No conocía ese atributo de <embed> así que me pondré a ello... dedicaré un tiempo a leer tu enlace.
No me esperen levantados, tardaré
Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #9 (permalink)  
Antiguo 19/05/2003, 05:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola ferny:

Desde que tengo la página de caricaturas que me he preocupado por poner música, no digo con esto que sea especialista, pero sí que he hecho muchas pruebas, y no sé porqué cambiar el src en el tag embed no funciona bien tal como propuso javierB con bgsound (Hola Javi )

Para simplificar te diré los pasos básicos que planteé en el otro link:

en la página principal se pone un tag vacío que yo suelo llamar fantasma:
<div id=fantasma></div>
y con un script poner un tag embed con el src de la música que quieres, o quitarlo...
document.getElementById("fantasma").innerHTML = "<embed src=sones.mid autostart=true hidden=false>"
o poner un string vacío para apagar.

También te comentaré un sistema, con el que coincidí con KarlanKas (ha llovido), y se trata de usar frames, y poner un frame oculto con la música de fondo, y cambiarlo a otro frame sin música... creo que KarlanKas también sabe mucho de estas cosas, ya que aquella discusión fue bastante animada

Si necesitas ayuda con estos sistema que te he comentado, cuenta conmigo...

... me olvidaba...

he visto que existe también el método play y run para explorer y netscape... play creo que lo probé, pero el otro no... (no sé en que versiones y navegadores funciona, por eso no te lo puedo recomendar)

Saludos

Última edición por caricatos; 19/05/2003 a las 05:21
  #10 (permalink)  
Antiguo 21/05/2003, 15:57
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
Hola de nuevo
He probado el siguiente código a la perfección en Internet Explorer 6 y en Netscape 7:
Código PHP:
<html>
<
head>
<
title>Prueba de sonido</title>
</
head>
<
body>
<
div id="fantasma"><embed src=exorcista.mid autostart=true hidden=true></div>
<
script language="javascript">
function 
enciende(){
document.getElementById("fantasma").innerHTML "<embed src=exorcista.mid autostart=true hidden=true>"
}
function 
apaga(){
document.getElementById("fantasma").innerHTML "<embed src=exorcista.mid autostart=false hidden=true>"
}
</script>
<input type=button value="Encender" onClick="enciende()"><br><br>
<input type=button value="Apagar" onClick="apaga()">
</body>
</html> 
El problema está en el Opera , que no hay manera de hacer funcionar el botón de parada.
No me gustaría usar frames (nunca los uso) ni iframes (no todos lo reconocen) así que... ¿hay alguna forma de que funcione en Opera ?
Salu2
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #11 (permalink)  
Antiguo 21/05/2003, 17:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola ferny:

No me acuerdo como iba esto en opera... además yo siempre lo use con loop=1 y sonidos breves, así que me despreocupaba de si se detenía o no, pero viendo tu código, lo que haces, es cambiar el atributo autostart del embed,`pero, la solución que yo usaba era eliminar la etiqueta embed...

Prueba con este código:

function apaga(){
document.getElementById("fantasma").innerHTML = "";
}

Yo lo probaré mañana...

Saludos
  #12 (permalink)  
Antiguo 22/05/2003, 02:27
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
Cita:
Mensaje Original por caricatos
Hola ferny:

No me acuerdo como iba esto en opera... además yo siempre lo use con loop=1 y sonidos breves, así que me despreocupaba de si se detenía o no, pero viendo tu código, lo que haces, es cambiar el atributo autostart del embed,`pero, la solución que yo usaba era eliminar la etiqueta embed...

Prueba con este código:

function apaga(){
document.getElementById("fantasma").innerHTML = "";
}

Yo lo probaré mañana...

Saludos
Ya había probado eliminando la etiqueta embed, poniendo el autostart a false, poniendo un archivo que no existiera... y nada, creo que es porque no reconoce lo de innerHTML, de ahí que dé igual lo que pongas en las comillas...
Supongo que con el frame oculto ese sí que funcionaría, pero ya dije que no me agrada usar un frame... sólo como último recurso.
Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #13 (permalink)  
Antiguo 22/05/2003, 06:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola Ferny:

La versión 7 de opera si que acepta innerHTML, y recuerdo que la 6.5 leía contenidos, pero no escribía...
Acabo de probar con la versión 7, y si bien te confirmo que funciona innerHTML, no escuché la música... (también uso el sistema de frames y si que funciona.

Luego trataré de probar si funcionan los métodos run, play y stop... y si consigo algo te aviso.

Saludos
  #14 (permalink)  
Antiguo 28/05/2003, 04:01
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
¡Hola!
He subido algo... en la página inicial www.mundodivx.com/index.php se debería escuchar la música de fondo. Arriba a la derecha está la capa "fantasma" que cambia de contenidos con el Encender/apagar música.
Te confirmo que si funciona en Opera, pues si te fijas cambia el texto de esa capa que puse, lo que pasa es que la música no se para y sigue tocando... En nescafé y explorer va perfecto.
Me estoy planteando un frame, ¿a partir de qué versiones funcionan los frames? Con explorer no tengo problemas, sería saberlo en nescafé y opera.

Otra cosa, la capa está alineada a la derecha para cualquier tamaño de ventana:

<div id="fantasma" align="right" style="width:100%; height: 20px; position: absolute; top: 5px; margin-left: -10px; visibility: visible; z-index: 2">

El caso es que si hacemos la ventana más pequeña de 800x600, la capa cae encima de la animación Flash, y curiosamente queda debajo de la animación Flash cuando debería quedar encima... en todos los navegadores. ¿Será por la animación o es porque el código está mal?

Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #15 (permalink)  
Antiguo 03/10/2005, 18:37
 
Fecha de Ingreso: octubre-2005
Mensajes: 1
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola

Me pase un bue rato buscando un codigo para controles de sonido
me encotre con este es sencillo y muy eficaz muchas gracias.
Cordilmente Eduardo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:58.