entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

generar pausa entre canciones

@Leonardo-Tadei ya tengo listo mi lista reproduccion, me tomo regular tiempo conseguirlo

<audio src="#" autoplay="true" controls="true" id="beat"></audio>
<button onclick="reproducir()">iniciar</button>
<button onclick="detener()">detener</button>
<div id="seccion"></div>
<script type="text/javascript">

currentTrack = 0 ;
/* DENTRO DEL ARREGLO DEBEN IR LOS NOMBRES DE LAS CANCIONES QUE PASARAN A FORMAR PARTE DE LA LISTA DE REPRODUCCION, POR DEFECTO EL NOMBRE DE LA CARPETA QUE CONTIENE ESTOS ARCHIVOS SE DENOMINA TRACKS */

beats = ['track01.mp3', 'track02.mp3'] ;

beat = document.getElementById('beat') ;

/* define la UBICACION del archivo */
function reproducir(){
beat.setAttribute('src', beats[0]);
beat.play();

/* declaracion del evento que esta esperando que termine la cancion para pasar a la siguiente cancion y modifica la ruta */
beat.addEventListener('ended', function(){

nextTrack = beats[currentTrack++];

beat.setAttribute('src', "tracks/"+nextTrack);
beat.play();
/* al llegar al ultimo elemento de la lista, reinicia desde el principio */

if(currentTrack == beats.length)
{
 currentTrack = 0;
}

})

function detener(){
beat.pause();
}

</script>

ahora me falta solo la pausa antes de pasar a la siguiente cancion, que puedo hacer

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola @steven,

te respondí com mi idea de solución sobre esto en esta respuesta.

Si no te gusta mi solución, no la uses!

0voto

steven comentado

disculpa leonardo lo que pasa es que no entendi bien la solucion que me propusiste

// Pasa de X segundos
silencio = 'shhhh.mp3'
// vector con las canciones
canciones = ['tema1.mp3','tema2.mp3','tema3.mp3']
para_cada (canciones => c){
  imprimir(c)
  imprimir(silencio)
}

no entendi que tipo de bucle deberia usar y que argumento es canciones =>c

0voto

Leonardo-Tadei comentado

La solución en psudocódigo es genérica.

Usá el bucle que ya tenés en tu código! Porque ves el bucle que escibiste, verdad?

0voto

steven comentado

claro es un bucle distinto, tengo que hacer mas bucles?

0voto

Leonardo-Tadei comentado

No, con el bucle de tu código basta.

0voto

steven comentado

lo solucione de esta manera

<audio src="../estudio/beats/eminem.mp3" autoplay controls id="beat"></audio>
<button onclick="reproducir()">iniciar</button>
<button onclick="detener()">detener</button>
<div id="seccion"></div>
<script type="text/javascript">

currentTrack = 0

beats = ['still.mp3', 'today.mp3']
pausa = "../estudio/beats/pausa.mp3"

beat = document.getElementById('beat')

beat.addEventListener('ended', function(){
setTimeout(function(){
nextTrack = beats[currentTrack++]
if(nextTrack){beat.setAttribute('src', pausa)}
beat.setAttribute('src', "../estudio/beats/"+nextTrack)
beat.play()
if(currentTrack == beats.length){currentTrack = 0}
}, 9999)
beat.setAttribute('src', pausa)
})

</script>

pero todavia sigo pensando que se podia haber hecho de otra manera, me gustaria saber si la solucion que tu imaginaste se asemeja al mio, de otro modo como lo hubieras resuelto, creo que para un problema pueden haber muchas soluciones, la mia fue la mas simple que encontre

0voto

Leonardo-Tadei comentado

Claro que se podría haber hecho de otra manera: es habitual que haya diferentes soluciones algorítmicas válidas para un mismo problema.

Lo que yo me imaginé no se parece a tu código: el mio tendría los punto y coma al final de cada línea, lo que es indispensable para que funcione... tambíen tendría 4 o 5 líneas de código menos y funcionaría para canciones de cualquier duración.

0voto

steven comentado

Memos line as due codigo con LA PA USA inluida lo dudo si no lo conpruebo

0voto

Leonardo-Tadei comentado

Compruébalo entonces!

0voto

steven comentado

si no me pasas tu codigo no lo puedo comprobar

1voto

Leonardo-Tadei comentado

Si tu no pones en tus respuestas código que realmente funcione, sin errores ni semánticos ni sintácticos, para que podamos copiarlo y pegarlo y ver cómo funciona, no me interesa seguir hablando contigo.

0voto

steven comentado

el codigo funciona correctamente, no entiendo cual es el problema, si hay alguno hasmelo presente, no entendi que quieres decir con errores semanticos, agradeceria si me explicases que cosa es.. para que mi codigo funcione con la lista de reproduccion es necesario obviamente los archivos de audio, deben estar en la misma carpeta del codigo, obviamente esta para modificar algunas lineas

1voto

Leonardo-Tadei comentado

Puede ser que tu código funcione. En tal caso no es el que copiaste y pegaste en tu respuesta.

Copiá y pegá el código de tu pregunta de más arriba y decinos, sinceramente, si funciona o no sin hacerle ningún cambio...

1voto

steven comentado

creo que hubo un mal entendido, el codigo que puse en mi pregunta es de mi lista de reproduccion que avanza automaticamente, no tiene ninguna pausa de por medio, el otro codigo que puse en mi respuesta es la lista de repro con la pausa de algunos segundos antes de pasar a la siguiente cancion, cuando te respondi que necesitaba comprobar me referia a la otra solucion que tu proponias para añadir la pausa. ambos codigos funcionan correctamente, como te dije en mi anterior comentario el array esta compuesto por los nombres de los archivos que estan incluidos en la misma carpeta, si es que tu lo quieres probar en tu ordenador debes colocar el archivo en tu carpeta de canciones y poner el titulo de alguna cancion dentro el array, a proposito con errores semanticos te refieres a las indentanciones o a otra cosa

2votos

Leonardo-Tadei comentado

No hubo ningún malentendido @steven: el código que habías puesto no funcionaba ni por casualidad, y hace 5 minutos editaste la pregunta y cambiaste el código para poner uno que, al menos, no tiene errores sintácticos.

Tu actitud ya pasa a ser deshonesta. Lo siento, pero no me interesa más hablar contigo.

1voto

steven comentado

segui el consejo que tu me diste, no entiendo que hice de deshonesto, quiza debi poner al final de mi comentario, lo editare para que puedas entenderlo un poco mejor. de todas manera mi codigo a mi si me funcionaba, pero para que funcionase en otro ordenador era necesario disponer de los archivos audio

El término deshonestidad es lo contrario de honestidad, por ende, la deshonestidad es una característica del ser humano que lo caracteriza como desleal, no confiable y suele estar muy ligado con la mentira. ... Por otro lado, deshonesto es usado como adjetivo para hacer referencia a una persona que actúa sin honestidad.

no fui desleal en ningun momento ni tampoco dije ninguna mentira

1voto

steven comentado

chicos @Leonardo-Tadei , @magarzon, @carlossevi, disculpen si los convoco a todos juntos, pero me preguntaba porque en estos ultimos dias me responden de mala gana, acaso hice algo que les molesto, si es asi me gustaria que me lo hicieran notar.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta