Comunidad de diseño web y desarrollo en internet online

botón play/stop de música (pregunta a expertos)

Citar            
MensajeEscrito el 23 May 2005 03:00 pm
Hola, tengo 2 botones de Play y Stop (play en frame 1, y stop en frame 2). Y de momento me va todo bien y el archivo de música se reproduce bien y se para bien. Pero, …. Me gustaría que al pulsar solamente UNA vez el botón PLAY, no pudiera pulsar de nuevo el botón, ya que si le pulso 3 veces seguidas, se me reproduce la canción 3 veces a la vez y es un jaleo.
¿Alguien sabe la línea que tengo que poner al botón PLAY para que al pulsar una vez no pueda pulsar más veces estes botón?. Gracias

Por josemaloru

38 de clabLevel



 

msie
Citar            
MensajeEscrito el 23 May 2005 03:17 pm
Si, pero hay un par de cosas:

1.- el sonido esta pegado en el boton?

Si es así, podrías poner en la accion:

this.enable=false; ("this" se refiere al botón)

2.- el sonido está en la biblioteca y lo llamas con attachSound()?

Pues entonces pon:

misonido_sound.stop("nombreidentificador");
misonido_sound.play( 0, 1);

de esta forma te aseguras que antes de nada se parará el sonido si se está reproduciendo, y evitarás el efecto ese que dices.

:wink:

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 23 May 2005 04:02 pm
Tengo el sonido en la biblioteca y desde allí le llamo, pero esa acción que me dices, ¿dónde las pongo?, ¿en los 2 botones play (del frame 1) y stop (del frame 2)?, o solo en el del ¿play?.

Gracias

Por josemaloru

38 de clabLevel



 

msie
Citar            
MensajeEscrito el 23 May 2005 04:38 pm
lo llamo con load.sound y no con attach, es lo mismo?

Por josemaloru

38 de clabLevel



 

msie
Citar            
MensajeEscrito el 23 May 2005 05:53 pm
Pues... que yo sepa, un sonido cargado con load es un sonido externo, es decir que se carga desde un directorio. Si está en la biblioteca, quiere decir que has importado el sonido.

Te todas formas tienes que ponerlo en el play, ya que primero parará el sonido que esté en marcha y después lo ejecutará, de forma que no podrán oirse al mismo tiempo dos intancias del mismo sonido. OK?

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 23 May 2005 06:51 pm
Vale,luego lo pruebo y te digo algo.
Muchas gracias

Por josemaloru

38 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 May 2005 02:10 am
Te recomiendo cargar el sonido desde un archivo externo. Primero crea un MC con dos fotogramas (frames) en el primer fotograma pon el boton play y la accion Stop(), en el segundo fotograma pon el boton Stop y tambien la accion Stop(). Hasta aqui vamos bien, luego slecciona el boton Play y coloca este codigo:

on(release){
sonido=new Sound();
sonido.loadSound("componentes/track1.mp3",false);
sonido.start(0,1);
gotoAndStop(2);
}

y en el boton Stop pegar este codigo

on(release){
stopAllSounds();
gotoAndStop(1);
}

Sigue estos pasos y tendras resultados.
responde si logre ayudarte

Por nEizÖr

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 May 2005 02:42 am
Bueno, aquí les pongo ésto, de la ayuda de flash, para aquellos que no entienden el inglés y no tienen el Flash en español.
Espero les sea de utilidad.

¿Por qué nadie revisa la ayuda de flash? :roll:

Información general sobre el trabajo con sonido
Macromedia Flash MX 2004 y Macromedia Flash MX Professional 2004 ofrecen distintos métodos para utilizar sonido. Puede crear sonidos que se reproduzcan de manera constante, independientes de la línea de tiempo, o sincronizar una animación con una pista de sonido. Puede añadir sonidos a botones para hacerlos más interactivos y hacer que aparezcan y desaparezcan de forma paulatina para refinar más la pista de sonido.

En Flash hay dos tipos de sonidos: sonidos de evento y flujos de sonido. Un sonido de evento debe descargarse por completo antes de empezar a reproducirse y continúa haciéndolo hasta que se detiene completamente. Los flujos de sonido empiezan a reproducirse en cuanto se ha descargado información suficiente para los primeros fotogramas y se sincronizan con la línea de tiempo para reproducirse en sitios Web.

El usuario debe seleccionar las opciones de compresión para controlar la calidad y el tamaño del sonido en los archivos SWF exportados. Puede seleccionar las opciones de compresión para sonidos concretos mediante el cuadro de diálogo Propiedades de sonido, o definir valores para todos los sonidos del documento en el cuadro de diálogo Configuración de publicación.

Puede utilizar sonidos en bibliotecas compartidas para vincular el sonido de una biblioteca a varios documentos. Véase Utilización de elementos de bibliotecas compartidas. También puede utilizar el evento onSoundComplete de ActionScript para activar un evento al concluir un sonido. Véase Evento onSoundComplete.

Puede utilizar comportamientos que son scripts de ActionScript predefinidos para cargar y controlar la reproducción de sonidos. Como los comportamientos, los componentes multimedia contienen scripts de ActionScript predefinidos para cargar y controlar sonidos (sólo sonidos MP3), pero además proporcionan un controlador para detener, pausar, rebobinar, etc. Para más información sobre cómo utilizar los componentes multimedia, consulte Reproducción de clips de vídeo FLV con componentes multimedia (sólo en Flash Professional).

Nota: también puede utilizar acciones para cargar sonidos dinámicamente. Véase Sound.attachSound() y Sound.loadSound().
--------------------------------------------------------------------------------
Sound.attachSound()
Disponibilidad
Flash Player 5.

Sintaxis
my_sound.attachSound("idName")

Parámetros
idName Identificador de un sonido exportado en la biblioteca. El identificador se encuentra en el cuadro de diálogo Propiedades de vinculación.

Valor devuelto
Ninguno.

Descripción
Método; asocia el sonido especificado en el parámetro idName al objeto Sound especificado. El sonido debe estar en la biblioteca del archivo SWF actual y debe estar especificado para la exportación en el cuadro de diálogo Propiedades de vinculación. Debe llamar a Sound.start() para empezar a reproducir el sonido.

Para asegurarse de que el sonido puede controlarse desde cualquier escena del archivo SWF, coloque el sonido en la línea de tiempo principal del archivo SWF.

--------------------------------------------------------------------------------
Sound.loadSound()
Disponibilidad
Flash Player 6.

Sintaxis
my_sound.loadSound("url", isStreaming)

Parámetros
url Ubicación de un archivo de sonido MP3 en un servidor.

isStreaming Valor booleano que indica si el sonido es un flujo de sonido (true) o un sonido de evento (false).

Valor devuelto
Ninguno.

Descripción
Método; carga un archivo MP3 en un objeto Sound. Puede utilizar el parámetro isStreaming para indicar si el sonido es de evento o de flujo.

Los sonidos de evento se cargan completamente antes de reproducirse. Los gestiona la clase Sound de ActionScript y responden a todos los métodos y las propiedades de esta clase.

Los sonidos de flujo se reproducen mientras se descargan. La reproducción empieza cuando se han recibido suficientes datos para iniciar el descompresor.

Todos los archivos MP3 (de evento o flujo) cargados con este método se guardan en la memoria caché de archivos del navegador del sistema del usuario.

Ejemplo
En el ejemplo siguiente se carga un sonido de evento:

my_sound.loadSound( "http://serverpath:port/mp3filename", false);

En el ejemplo siguiente se carga un sonido de flujo:

my_sound.loadSound( "http://serverpath:port/mp3filename", true);

Véase también
Sound.onLoad

--------------------------------------------------------------------------------
Sound.onLoad
Disponibilidad
Flash Player 6.

Sintaxis
my_sound.onLoad = function(success){
// las sentencias se escriben aquí
}

Parámetros
success Valor booleano true si my_sound se ha cargado correctamente; de lo contrario, tendrá el valor false.

Valor devuelto
Ninguno.

Descripción
Controlador de eventos; se invoca automáticamente cuando se carga un sonido. Debe crear una función que se ejecute cuando se invoque este controlador. Puede utilizar una función anónima o una función con nombre (para obtener un ejemplo, véase Sound.onSoundComplete). Debe definir este controlador antes de llamar a my_sound.loadSound().

--------------------------------------------------------------------------------
Sound.onSoundComplete
Disponibilidad
Flash Player 6.

Sintaxis
my_sound.onSoundComplete = function() {
// las sentencias se escriben aquí
}

Parámetros
Ninguno.

Valor devuelto
Ninguno.

Descripción
Controlador de eventos; se invoca automáticamente cuando finaliza la reproducción de un sonido. Puede utilizar este controlador para desencadenar eventos en un archivo SWF cuando finaliza la reproducción de un sonido.

Debe crear una función que se ejecute cuando se invoque este controlador de eventos. Puede utilizar una función anónima o una función con nombre.

Ejemplo
Sintaxis 1: en el ejemplo siguiente se utiliza una función anónima:

my_sound = new Sound();
my_sound.attachSound("mySoundID");
my_sound.onSoundComplete = function() {
trace("mySoundID completed");
}
my_sound.start();

Sintaxis 2: en el ejemplo siguiente se utiliza una función con nombre:

function callback1() {
trace("mySoundID completed");
}

my_sound = new Sound();
my_sound.attachSound("mySoundID");
my_sound.onSoundComplete = callback1;
my_sound.start();

Por La100rra

Claber

5776 de clabLevel

11 tutoriales
4 articulos

Genero:Masculino  



Ultima edición por La100rra el 24 May 2005 08:05 am, editado 1 vez

Cd. Juárez, Chihuahua, México.

clabbrowser
Citar            
MensajeEscrito el 24 May 2005 07:59 am
Me gustaría que al pulsar solamente UNA vez el botón PLAY, no pudiera pulsar de nuevo el botón, ya que si le pulso 3 veces seguidas, se me reproduce la canción 3 veces a la vez y es un jaleo.


No era esta una e las preguntas??? :lol:

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 24 May 2005 08:06 am

josemaloru escribió:

lo llamo con load.sound y no con attach, es lo mismo?
por ésta pregunta fué que puse lo de arriba. :wink:

Por La100rra

Claber

5776 de clabLevel

11 tutoriales
4 articulos

Genero:Masculino  

Cd. Juárez, Chihuahua, México.

clabbrowser
Citar            
MensajeEscrito el 24 May 2005 11:25 am
si que somos expertos...si...

en usar la Ayuda!! :lol:

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 24 May 2005 01:19 pm
YO TENIA TODO ESTO QUE ME PONES, PERO EL PROBLEMA ES QUE SI PULSO 2 VECES AL PLAY SE REPRODUCE DE NUEVO EL SONIDO, Y APARECE LA CANCION 2 VECES DESFASADA. LO QUE QUIERO ES QUE AL PULSAR PLAY, YA NO LO PUEDA PULSAR, Y QUE SOLAMENTE PUEDA PULSAR STOP. PERO COMO EL BOTÓN DEL PLAY ESTÁ DEFINIDO COMO BOTÓN, LE PUEDAS DAR CUANDO QUIERA, Y SI APRETAS 3 VECES, 3 VECES QUE SE REPITEN EL SONIDO EN LA MISMA VIA.
MUCHAS GRACIAS


Hasta aqui vamos bien, luego slecciona el boton Play y coloca este codigo:

on(release){
sonido=new Sound();
sonido.loadSound("componentes/track1.mp3",false);
sonido.start(0,1);
gotoAndStop(2);
}

y en el boton Stop pegar este codigo

on(release){
stopAllSounds();
gotoAndStop(1);
}

Por josemaloru

38 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 May 2005 06:05 pm
Ok, vale pués, Sisco, ya no más ayuda de Flash, éste es el código que tengo en mi page, y el problema de que para que cada vez que le dieran click no iniciara una canción nueva, lo solucioné poniendo el stopAllSounds(); en el botón del play también, no se si es lo correcto, pero así me funcionó, y como podrán ver, debe de haber algunos errores, como codigo repetido y cosas así, de forma tal, que no se dejen llevar por las ganas de copiar y pegar, analicen, experimenten, así es mejor, porque luego uno se amaña.(como yo) :lol:
Esa era la razón por la que estaba poniendo la ayuda de flash, no me malinterpreten, sólo quería despertar la curiosidad y las ganas de experimentar por cuenta propia, es decir, eran como pistas para que se llegara a la solución, pero veo que no agradó la idea. ok, ni modo. :(

Código :

_root.speaker.stop();  //<--esta es una animación de una bocinita :)
//<--------------------------- song_btn //este es el primero de 3 btns
song = new Sound();                      // en este se attachea un sonido
song.attachSound("sound1");        // que está en la Biblioteca
_root.playButton.onRelease = function() {
   stopAllSounds();
   song.start();
   _root.speaker.play();
   song.onSoundComplete = function() {
      song.onSoundComplete = function() {
         this.start();
      };
      song.start();
   };
   _root.speaker.play();
};
//<--------------------------- stop_btn
_root.stopButton.onRelease = function() {
   stopAllSounds();
   _root.speaker.stop();
};
//<------------ song2_btn    //En éste boton se carga un swf con el so-
_root.speaker.stop();       //nido dentro de él.
_root.song2_btn.onRelease = function() {
   stopAllSounds();
   _root.speaker.play();
   loadMovieNum("sonido2.swf", 50);
};
_root.stopButton.onRelease = function() {
   song2.stop();
   _root.speaker.stop();
};
//<--------------------------- song3_btn
_root.speaker.stop();
song3 = new Sound();
song3.attachSound("sound3");  // en este se attachea otro sonido
_root.song3_btn.onRelease = function() { //que está en la biblioteca
   stopAllSounds();
   song3.start();
   _root.speaker.play();
   song3.onSoundComplete = function() {
      song3.onSoundComplete = function() {
         this.start();
      };
      song3.start();
   };
   _root.speaker.play();
};
_root.stopButton.onRelease = function() {
   song3.stop();
   _root.speaker.stop();
};

Por La100rra

Claber

5776 de clabLevel

11 tutoriales
4 articulos

Genero:Masculino  

Cd. Juárez, Chihuahua, México.

clabbrowser
Citar            
MensajeEscrito el 24 May 2005 06:10 pm
en el primer fotograma de tu MC(clip de pelicula)pon solamente el boton play, y en el segundo fotograma el boton stop solamente. Asi no se intervendran y no te causaran problemas.
Pruebalo

Por nEizÖr

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 May 2005 07:36 pm
Que noooooo, si lo mejor es la ayuda de flash! Anda que no he sacado yo ejemplos!!!

Además toda ayuda es buena cuando empiezas o llevas poco tiempo. Saludos

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 30 May 2005 11:50 pm

nEizÖr escribió:

Te recomiendo cargar el sonido desde un archivo externo. Primero crea un MC con dos fotogramas (frames) en el primer fotograma pon el boton play y la accion Stop(), en el segundo fotograma pon el boton Stop y tambien la accion Stop(). Hasta aqui vamos bien, luego slecciona el boton Play y coloca este codigo:

on(release){
sonido=new Sound();
sonido.loadSound("componentes/track1.mp3",false);
sonido.start(0,1);
gotoAndStop(2);
}

y en el boton Stop pegar este codigo

on(release){
stopAllSounds();
gotoAndStop(1);
}

Sigue estos pasos y tendras resultados.
responde si logre ayudarte


Esto esta perfecto pero como hago para que el sonido este sonando de manera indefinida ¨?????

Por FlyPig

39 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2005 12:32 am
sound.start([secondOffset:Number, loop:Number])

Osea:

sonido.start(0,999);

Obvio... :lol: :lol: :lol:

:wink:

Por jlmm

90 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 31 May 2005 01:32 am

jlmm escribió:

sound.start([secondOffset:Number, loop:Number])

Osea:

sonido.start(0,999);

Obvio... :lol: :lol: :lol:

:wink:



O sea, no se puede dejar de manera indefinida ???

Por FlyPig

39 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2005 02:42 am
Hola,

Tienes que establecer un limite de loops. La pregunta es, realmente es necesario que sea "para siempre"¿?

Teniendo en cuenta que un dia tiene 86400 segundos...

Y digamos que tengo un mp3 en mi pagina que dura 60 segundos y deseo que se reprodusca constantemente, entonces pongo el parametro 999.

Eso me da 59740 segundos de reproduccion continua. Lo que vienen a ser 16.59 horas.

Realmente espero que un usuario que se conecte a mi pagina web permanezca alli por 16.59 horas escuchando el mismo loop¿? Yo calculo que a las 4.5 horas (Eastern Time :lol: ) Ya habra cerrado la pagina o matado a alguien.

Suerte.

Por jlmm

90 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 31 May 2005 02:53 am

jlmm escribió:

Hola,

Tienes que establecer un limite de loops. La pregunta es, realmente es necesario que sea "para siempre"¿?

Teniendo en cuenta que un dia tiene 86400 segundos...

Y digamos que tengo un mp3 en mi pagina que dura 60 segundos y deseo que se reprodusca constantemente, entonces pongo el parametro 999.

Eso me da 59740 segundos de reproduccion continua. Lo que vienen a ser 16.59 horas.

Realmente espero que un usuario que se conecte a mi pagina web permanezca alli por 16.59 horas escuchando el mismo loop¿? Yo calculo que a las 4.5 horas (Eastern Time :lol: ) Ya habra cerrado la pagina o matado a alguien.

Suerte.




Un loop de 60 de segundos ? Jajajajaja, bue ejemplo.

Veo que no entendiste nada, pero bueno, parece que no se puede.

Gracias de todas maneras.

Por FlyPig

39 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2005 02:56 am
:lol: :lol:

Hablas de loops mas pequeños¿? Como de 5 segundos o menos¿? No creo que ayude mucho a la usabilidad tener nada que se repita por mas de 5 minutos. Puede que a uno le "encante", pero yo no programo/diseño para mi, lo hago para mis usuarios. 8)

Suerte. ^^

Por jlmm

90 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 31 May 2005 03:53 am
Aaaa, que mala suerte no poder hacer lo que te gusta.

Pues yo si, por eso pregunto.

Gracias.

Por FlyPig

39 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Jun 2005 10:36 pm
mmm pos q altanero...... ya te respondieron pon 999, o 9999999999999999999 o lo q desees..
o has alguna funcion para cuando llegue a 999 se ponga en 0 y empieze de nuevo... por dios ya haz algo!! :lol:

Por Acidbjazz

716 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 08 Jun 2005 11:35 pm

FlyPig escribió:

Veo que no entendiste nada

:? esto suena mal ten mas cuidado al responder

un loop demaciado grande puede colgar algunas pc's, si te gusta colgar las pc's de tus usuarios... relizalo.

Saludos :D

Por flasher

Invitado



 

firefox
Citar            
MensajeEscrito el 09 Jun 2005 03:19 am
POR FAVOR, respeto entre todos, ya olvidemonos un poco de los problemas.

La solución, para un loop ETERNO es:

Código :

var my_sound:Sound = new Sound();
my_sound.attachSound("musica");
my_sound.onSoundComplete = function() {
  this.start();
}
my_sound.start();


Saludos :wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 09 Jun 2005 08:51 am
ese es un motivo inmenso por lo q nunca llegare a ser un BOHF, .... tienen una paciencia infinita... aprovechalo FlyPig ^^

Por Acidbjazz

716 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 09 Jun 2005 09:28 am
no todos
:lol: :lol: :lol: :lol:

Por La100rra

Claber

5776 de clabLevel

11 tutoriales
4 articulos

Genero:Masculino  

Cd. Juárez, Chihuahua, México.

clabbrowser
Citar            
MensajeEscrito el 09 Jun 2005 12:48 pm
jajaja... un poco de humor no?

La100rra, tienes mucha pa100cia... jejeje
y que sepas... la gente no se para a leer... ya ves luego pasa lo que pasa.. si no leyeron tu explicacion, menos los tutoriales y menos aun la ayuda.

si a todo esto le sumas la falta de logica..... "negative negative".

y lo mas de lo mas es que el morbo viene cuando pone para expertos.... :lol: :lol:

en fin es muy sencillo... tu mismo lo dijiste..
Ejemplo
Sintaxis 1: en el ejemplo siguiente se utiliza una función anónima:

my_sound = new Sound();
my_sound.attachSound("mySoundID");
my_sound.onSoundComplete = function() {
trace("mySoundID completed");
}
my_sound.start();

Sintaxis 2: en el ejemplo siguiente se utiliza una función con nombre:

function callback1() {
trace("mySoundID completed");
}

my_sound = new Sound();
my_sound.attachSound("mySoundID");
my_sound.onSoundComplete = callback1;
my_sound.start();


es muy sencillo....
puedes usar una variable que te devuelva un valor y hasta que no acabe el sonido no realiza la funcion.
Una vez acaba cambia la variable y vuelta a reproducir el sonido <esto seria un loop, bucle o como quieran llamarle los expertos>,
y sino, acabas la funcion y esta listo para reproducirse de nuevo el archivo a una solicitud de evento.

por si sirve de algo..... yo escribi un tutorial.. sobre carga aleatoria de mp3 , aunque en este caso no se reproduce indefinidamente pero se puede adaptar. pero si se utilizan los eventos aqui referenciados.

bueno la100ra, que no te se acabe el gas :wink:

Por Silvestre_

391 de clabLevel

1 tutorial

 

"un simple aficionado", pero acepto propuestas de trabajo

firefox
Citar            
MensajeEscrito el 09 Jun 2005 02:10 pm
Ya lo tengo hecho. Gracias...
Como tengo 5 escenas (paginas diferentes), lo he creado como MC externo, de tal manera que lo cargo en una esquina de la web en la página principal y ya lo tengo en todas, y se mantiene en todas las páginas, y el sonido no se duplica

Por josemaloru

38 de clabLevel



 

msie
Citar            
MensajeEscrito el 05 Mar 2009 04:17 pm
Hola, estoy siguiendo el hilo de esta discusi y mi audio se reproduce correctamente con culquiera de las dos sintaxis que Silvestre pone en su mensaje, sin embargo no se a que se refiere en su codigo la instancia trace("mySoundID completed"); ese nombre de instancia mySoundID completed sobre que o donde lo debo poner? gracias!

Por El Tin

0 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.