¿Pasar de segundos a minutos y segundos en una reproducció?

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Buenos días/tardes/noches, noches en este caso :)

Os comento, estoy creando un reproductor de audio para meterlo en mi suite de aplicaciones y bueno, se me ocurrió poner una label que contabilice el tiempo de la canción, vamos, nada innovador, pero que me hacía ilusión ponerlo. Y bueno, para eso hice esto:

-Puse en OnTimer:
time = Audio.GetCurrentPos(CHANNEL_NARRATION);
dura = Audio.GetLength(CHANNEL_NARRATION);
Label.SetText("Label1", time);
Label.SetText("Label2", dura);
Y hasta ahí bien. Ahora, me sale en segundos todo y es un verdadero coñazo, mi pregunta es, ¿Puedo convertir los segundos a minutos y segundos? Es decir, en vez de que se muestre por ejemplo, en la duración, 126 segundos (por ejemplo), que se muestre 2.06 minutos.

¿Podéis echarme un cable....de nuevo? :sorry:

Saludos! ;)
solo debes de dividir la variable Dura entre 60 y listo.
Agotaras123 escribió:solo debes de dividir la variable Dura entre 60 y listo.
¿Cómo se divide una Label? Es decir, sé que será con alguna acción de "Math." pero no he tocado esa acción excepto para "Math.Random" y no me manejo muy bien :sorry:
Bueno no es nada de eso es asi
time = Audio.GetCurrentPos(CHANNEL_NARRATION);
dura = Audio.GetLength(CHANNEL_NARRATION);
tiempo = (dura/60)
Label.SetText("Label1", time);
Label.SetText("Label2", tiempo);
Ah! entonces las operaciones matemáticas del estilo suma, resta, etc. se realizan así? 
Nunca se acuesta uno sin aprender algo nuevo :D

Muchas gracias Agotaras! :)
si asi mero, y pues si todos los dias aprendemos cosas nuevas sean buenas o malas.
Sep, es fácil ;), unos ejemplos:

local minutos = 0; local segundos = 126;
while (segundos > 60) do
segundos = segundos - 60; minutos = minutos + 1;
end


local segundos = 126;
local minutos = Math.Floor(segundos / 60);
segundos = segundos - (minutos * 60);


local segundos = 126;
local minutos = Math.Floor(segundos / 60);
segundos = (segundos % 60) * 60;


Que hace cada uno:
  1. Crea un loop mientras segundos sea mayor de 60, le resta 60 cada vez y suma un minuto (si son muchos segundos hace muchos loops y puede ser pesado).
  2. Divide segundos entre 60 y después redondea el resultado a la baja (aunque sea 2.9 da 2 como resultado) y después le resta el total de los minutos multiplicado por 60
  3. Hace lo mismo que el segundo sólo que en la tercera linea en vez de restar lo que hace es multiplicar el "resto" por 60.