Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

De una {tabla con sonidos} reproducirlos de manera aleatoria. Cuando empiece un sonido, debe escucharse entero, y luego debe reproducirse el siguiente
Started by javigonzalezmarti Aug 18 2015 02:20 PM

7 replies to this topic
sonido oncomplete event.completed
[TOPIC CONTROLS]
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

javigonzalezmarti

[GLOBAL: userInfoPane.html]
javigonzalezmarti
  • Observer

  • 8 posts
  • Corona SDK

sonido1 = audio.loadSound( "sonido1.mp3" )
sonido2 = audio.loadSound( "sonido2.mp3" )
sonido3 = audio.loadSound( "sonido3.mp3" )

sonidos = {sonido1, sonido2, sonido3}

for i=1, #sonidos do
   math.randomseed(os.time())
   aleatorio = math.random (#sonidos)
   playSound ()
   audio.play (sonidos[aleatorio], {onComplete = ¿?¿?¿?¿?¿? })
   table.remove (sonidos, aleatorio)
end

 
 
De esta manera se reproducen los 3 sonidos de golpe, ya que al ejecutarlo, no se como ahcer para que cuando se reproduzca el sonido 1, se pare la ejecución del programa. y Cuando se acabe, siga por el siguiente que le toque...
 
AYUDA POR FAVOR!


[TOPIC: post.html]
#2

javigonzalezmarti

[GLOBAL: userInfoPane.html]
javigonzalezmarti
  • Observer

  • 8 posts
  • Corona SDK

ayudaaaaaaaaaaaaaaaa



[TOPIC: post.html]
#3

Jonytexas

[GLOBAL: userInfoPane.html]
Jonytexas
  • Contributor

  • 110 posts
  • Corona SDK

Buenas Javi. Lo que veo es que al pasar por el for hasta el número de veces del array 3 hecha las 3 canciones a la vez. Ahora mismo no puedo ayudarte porque he formateado el pc. Una vez instale y lo tenga listo le pego un vistazo... Un saludo

[TOPIC: post.html]
#4

Jonytexas

[GLOBAL: userInfoPane.html]
Jonytexas
  • Contributor

  • 110 posts
  • Corona SDK

Prueba esto... No tengo el pc delante para saber si funciona...

sonido1 = audio.loadSound( "sonido1.mp3" )
sonido2 = audio.loadSound( "sonido2.mp3" )
sonido3 = audio.loadSound( "sonido3.mp3" )

sonidos = {sonido1, sonido2, sonido3}

i = 1

function reproducirCancion()
math.randomseed(os.time())
playSound ()
audio.play (sonidos[i], {onComplete = reproducirCancion })
table.remove (sonidos, i)

i = i + 1
end

reproducirCancion()

Pruébalo y me dices... Como t digo no tengo el pc delante y no lo he probado.

[TOPIC: post.html]
#5

Jonytexas

[GLOBAL: userInfoPane.html]
Jonytexas
  • Contributor

  • 110 posts
  • Corona SDK

Prueba esto... No tengo el pc delante para saber si funciona...

sonido1 = audio.loadSound( "sonido1.mp3" )
sonido2 = audio.loadSound( "sonido2.mp3" )
sonido3 = audio.loadSound( "sonido3.mp3" )

sonidos = {sonido1, sonido2, sonido3}

i = 1

function reproducirCancion()
math.randomseed(os.time())
playSound ()
audio.play (sonidos[i], {onComplete = reproducirCancion })
table.remove (sonidos, i)

i = i + 1
end

reproducirCancion()

Pruébalo y me dices... Como t digo no tengo el pc delante y no lo he probado.

[TOPIC: post.html]
#6

javigonzalezmarti

[GLOBAL: userInfoPane.html]
javigonzalezmarti
  • Observer

  • 8 posts
  • Corona SDK

Prueba esto... No tengo el pc delante para saber si funciona...

sonido1 = audio.loadSound( "sonido1.mp3" )
sonido2 = audio.loadSound( "sonido2.mp3" )
sonido3 = audio.loadSound( "sonido3.mp3" )

sonidos = {sonido1, sonido2, sonido3}

i = 1

function reproducirCancion()
math.randomseed(os.time())
playSound ()
audio.play (sonidos[i], {onComplete = reproducirCancion })
table.remove (sonidos, i)

i = i + 1
end

reproducirCancion()

Pruébalo y me dices... Como t digo no tengo el pc delante y no lo he probado.

 

Gracias, pero esta solución no vale, porque pierdo la aleatoriedad...

 

Quiero que cada vez que ejecute el programa, se reproduzcan en orden aleatorio, y hasta que no acabe una, no salte la siguiente.

 

Ayudaaaaaaa!!!



[TOPIC: post.html]
#7

javigonzalezmarti

[GLOBAL: userInfoPane.html]
javigonzalezmarti
  • Observer

  • 8 posts
  • Corona SDK

Necesito ayuda por favor!!!!



[TOPIC: post.html]
#8

mperezsoriano

[GLOBAL: userInfoPane.html]
mperezsoriano
  • Enthusiast

  • 41 posts
  • Enterprise

Hola Javi acabo de leer esto y aunque ya pasaron unos días se me ocurre que puedes hacer esto. Espero que te sirva.

 

Saludos

 

math.randomseed(os.time())

 
sonido1 = audio.loadSound( "sonido1.mp3" )
sonido2 = audio.loadSound( "sonido2.mp3" )
sonido3 = audio.loadSound( "sonido3.mp3" )
 
sonidos = {sonido1, sonido2 ,sonido3}
 
local function numerosAleatorios (num)
local vector = {}
for i=1,num do
local bool = false
repeat
vector[i] = math.random( num )
bool = true
for j=1,#vector-1 do
if vector[j] == vector[i] then bool=false end
end
until bool == true
print (i, vector[i])
end
return vector
end
 
local function reproducirSonido (vector)
local i=1
local function sonido()
audio.play( sonidos[vector[i]], {onComplete =
function()
if i<#vector then
i=i+1
sonido()
end
end
})
end
sonido()
end
 
reproducirSonido(numerosAleatorios(3))



[topic_controls]
[/topic_controls]