Esa es mi duda y no se si tambien pueda preguntar esto aqui mismo o sea en otro tema (si es el caso, favor de decirlo y modifico el tema y abro otro).
Se puede reproducir un sonido que este cargado en otro objeto, por ejemplo:
en un solo objeto persistente cargo todos los sonidos y cuando los ocupe los reproduzco desde el objeto que quiera
pero te conviene cargarlo como se hace normalmente o mejor cargarlo por archivo externo.
Para verificar si un sonido esta sonando usas:
[gml]
if (sound_isplaying(sonido))
[/gml]
entonces para que se reporduzca una cancion cuando finalize la otra...
[gml]
if (!sound_isplaying(musica_1)) //si NO esta sonando musica_1
sound_play(musica_2);// reproduce musica_2
[/gml]
y...para reproducir un sonido desde otro objeto:
[gml]
sound_play(obj_musicas.musica_1)
[/gml]
Saludos! :)
Cita de: Silver_light en Febrero 21, 2011, 02:45:15 AM
Para verificar si un sonido esta sonando usas:
[gml]
if (sound_isplaying(sonido))
[/gml]
entonces para que se reporduzca una cancion cuando finalize la otra...
[gml]
if (!sound_isplaying(musica_1)) //si NO esta sonando musica_1
sound_play(musica_2);// reproduce musica_2
[/gml]
ya lo intente pero no puedo, no se si estoy haciendo algo mal pero al acabar la cancion no empieza la otra (cosa que ya la he oido como 10 veces) y tampoco entiendo porque pusiste "if (sound_isplaying(musica_1))" se pone en step supongo que arriba de "if (!sound_isplaying(musica_1)) sound_play(musica_2);" pero como le haria para poner mas de 2 canciones
ya pude reproducir la cancion desde otro objeto, gracias :)
creo que pido mucho :-[. Gracias por la ayuda :D
En el evento step unicamente coloca:
[gml]
if (!sound_isplaying(musica_1)) //si NO esta sonando musica_1
sound_play(musica_2);// reproduce musica_2
[/gml]
eso deber?a iniciar la musica_2 cuando termina la musica_1... :/
Necesitas un vector o una ds_list para almacenar los sonidos. Inicias primero las variables en el create
[gml]cur=0
musica[1]=sound0
musica[2]=sound1
musica[3]=sound2
musica[4]=sound3
maxs=4[/gml]
Los sonidos tienen q ser del tipo Reproductor de medios para q el sound_isplaying cumpla bien su rol. Entonces pon?s en step
[gml]if !sound_isplaying(musica[cur]) {cur+=1 if cur>maxs {cur=1} sound_play(musica[cur])}[/gml]
Y listo!
Saludos
Hmm... yo lo har?a as?:
Create:
[gml]cancion[0] = sound0;
cancion[1] = sound1;
cancion[2] = sound2;
// ...
canciones = 3;
actual = 0;
sound_play(cancion[actual]);[/gml]
Y en step:
[gml]if (!sound_isplaying(cancion[actual])){
actual = (actual + 1) mod canciones;
sound_play(cancion[actual]);
}[/gml]
Es casi lo mismo que Texic pero me parece m?s organizado.
Adem?s, Texic, tendr?as que usar el ?ndice 0 del array. No estoy seguro, pero GM podr?a tirar un error porque en el primer step hac?s referencia a musica[0], y musica[0] no est? definida. Incluso con tu amada opci?n de tratar las variables no inicializadas como 0 (que deber?as desactivar, no seas vago XD), puede haber un sonido que sea el sonido 0, y si este se est? reproduciendo, sound_isplaying(musica[0]) devolver?a true, y el if no se ejecutar?a hasta que el sonido pare.
:P
Peque?o error de programaci?n, me gusta eso de mod canciones. Yo al mod nada m?s los uso para acomodar draw combinados con for
Hasta ahora la forma que me dice Wadk me ha funcionado perfectamente.
Gracias por su ayuda Silver_light, Texic y Wadk :)
Cita de: p34 en Febrero 22, 2011, 12:48:32 AM
gracias a todos por sus respuestas.
Tambien se me ocurrio que con una linea del tiempo las puedo reproducir pero no se si sea lo conveniente
Cualquiera de las soluciones mencionadas en este tema es m?s conveniente. ?Por qu? no us?s una de ellas?
si gracias, estoy usando la forma que me dijiste pero si falla tengo lo que me dijo Silver_light o la linea del tiempo como respaldo
:D
cuek yo te iba a responder casi igual pero ya que tienes una respuesta mejor te paso un buen dll para reproducir musica externamente con muy buena definicion ,ademas si tiene error simplemente la cancela por ese instante la cancion ^^ toma espero te sirva a mi me a ayudado mucho es el sin bass dll http://www.vourtsis.com/sindarin/DLLS/index.html
Gracias Sivak por la DLL, actualmente ya esoy usando la forma que me dijo Wadk, pero te lo agradezco de todas formas