Reproductor mp3 en flash

O al menos orientarme, con un problema que tengo...
Estoy haciendo una web con enlaces a archivos mp3 que intento reproducir en un reproductor hecho en flash. Concretamente lo que me gustaría conseguir es que al hacer clic sobre el enlace de uno de los archivos de audio éste se cargase en el reproductor, pero no se como pasarle el nombre del archivo que tiene que reproducir.
No se mucho de flash, lo necesario para adaptar un reproductor que he encontrado en Internet, y por ello te agradecería cualquier ayuda. Por si te sirve, me es indiferente si el enlace y el reproductor están en la misma página o si el enlace carga otra página con el reproductor.

1 Respuesta

Respuesta
1
Fíjate este es para hacer un reproductor y creo que es lo que quieres. Espero te sirva
Después de ver algunos componentes y trabajar con ellos, se me ha quitado el miedo y me han dado ganas de probar cosas con estos, y aprovechando que tenia que hacer un menu con música en mi trabajo, pues he montado con un componente List y otro MediaPlayback, un sencillo reproductor MP3.
Se recomienda que antes de leer este tutorial hayas leído el Tutorial de XML, o sepas como funciona XML en Flash, así como el Tutorial del Componente List.
Para hacer este reproductor usaremos un archivo XML (Así es más practico) donde colocaremos nuestra lista de canciones que abrirá nuestro reproductor; lo llamaremos, como no, Lista.xml y le pondremos el siguiente contenido; en este caso usare dos canciones, pero puedes usar cuantas quieras y funcionara igual; la idea es que cada entrada sea el nombre de un archivo mp3 que este en la misma carpeta que el SWF y HTML del reproductor.
<lista> <cancion>KillBill_IronSide.mp3</cancion> <cancion>ReadOrDie.mp3</cancion></lista>
Ahora vamos a añadir a vuestra escena el componente List y llamarlo 'lista', y el componente MediaPlayback y llamarlo 'player'. Luego en el fotograma 1, añadís el siguiente código:
import mx.controls.List;import mx.controls.MediaPlayback;//Cargamos el XMLcanciones = new XML();canciones.ignoreWhite = true;canciones.onLoad = function(success) { if (success) { //Shortcuts cancion = canciones.firstChild; num_total = canciones.firstChild.childNodes.length; //Creamos y llenamos la lista crearLista(); //Creamos el reproductor crearPlayer(); } else { trace("No se pudo cargar la lista de canciones"); }};canciones.load("lista.xml");////////////////////////////////////////////////////////////////////////////////////////////// LISTENERS //////////////////////////////////////////////////////////////////////////////////////////////lista.addEventListener("change", alCambiar);////////////////////////////////////////////////////////////////////////////////////////////// FUNCIONES //////////////////////////////////////////////////////////////////////////////////////////////function crearLista() { //Posicionamos la lista de las canciones lista.setSize(180, 200); lista._x = 220; lista._y = 0; //Llenamos la lista con las canciones misDatos = new Array(); lista.dataProvider = misDatos; for (var i = 0; i<num_total; i++) { misDatos.addItem({label:cancion.childNodes.firstChild,
data:cancion.childNodes.firstChild}); }}function crearPlayer() { //Posicionamos el reproductor player.setSize(200, 200); player._x = 0; player._y = 0; //Propiedades del reproductor player.controllerPolicy = "on"; player.mediaType = "MP3";}//Cuando cambiamos la canción seleccionada en la lista... cargamos la nueva canción, y ejecutamosfunction alCambiar(evento) { if (evento.type == "change") { player.setMedia("musica/"+lista.selectedItem.data, "MP3"); player.play(); }}
De esta manera has creado rápidamente un reproductor mp3, en pocos pasos, usando los componentes de Flash MX 2004; quizás lo único complicado es entender la parte de XML; pero en realidad es muy fácil después que practicas ;)
Gracias por tu interés.
Ya había visto este código y estoy planteándome reutilizarlo para otra parte de la web. Pero lo que realmente necesito es que al pulsar sobre un enlace suene una canción, cuando pulse en otro en lace otra... y así con todas. ¿Puedes ayudarme?
De todos modos reitero mi agradecimiento por tu interés. Muchas gracias.
Espero te sirva esto lo saque de un foro esta es la diré por si quieres entrar
http://www.cristalab.com/tutoriales/100/carga_aleatoria_controlada_de_mp3_en_flash
Si deseamos cargar al azar y sin repetir los archivos, crearemos un array, de esta manera ir guardando los nuevos valores ya cargados y saber cuales ya han sido usados.
Básicamente he creado dos funciones, una será la que se encargue de darme un valor aleatorio y que no se repita en un ciclo determinado (este será el numero de archivos disponibles) function Búsqueda() . Y la otra es la que se encargara de reproducir el sonido function activarsonido().
Al principio estableceremos la variables del array, y crearemos el objeto de sonido new Sound();.
También crearemos tres variables, estas serán fijas durante toda la ejecución de las funciones, y servirán para poder personalizar estas. Las variables son TextoSound, ArchivoExtension y NumMovies. Estas variables tambien podrian introducirse como parametros al llamar a la función...<esto sería otro tema>.
Este sera el código (Lee con mucha atención los comentarios; es donde esta la explicación
//-----------------------------------carga al azar de mp3, pero sin repetir----------------------------------var MiArray = new Array();var playMusic = new Sound();var ValorIni = 0;/* Para mayor simplicidad es aconsejable que el primer archivo de la serie, tenga como numeral el 0. La variable TextoSound es para el texto del nombre por ejemplo: "MySound" esto sería lo que correspondería al primer archivo:"MySound0.mp3", de esta manera solo tienes que modificar esta variable para adaptarla a tus archivos. La variable ArchivoExtension es obvio esta variable es para especificar la extensión de los archivos, en este caso mp3. La variable NumMovies es para el numero total de archivos que deseas que hagan el ciclo por ejemplo: " MySound0.mp3, MySound1.mp3, MySound2.mp3, MySound3.mp3= 4 archivos. Modifica este valor según las imágenes de que dispongas */var TextoSound = " MySound ";var ArchivoExtension = ".mp3";var NumMovies = 4;//-----------------------------------------------------------------------------------------------------------/* Esta función sólo nos devolverá un valor comprendido en la variable NumMovies, este se comprobara para ver si ya existe en un Array creado en tiempo de ejecución. */function Busqueda() { var Controlde = true; // while.. si ya se ha emitido el numero, repite la búsqueda del numero al azar while (Controlde == true) { Controlde = false; Minor = random(NumMovies); //for.. recorre todos las variables del Array, para buscar si ya ha sido emitido el numero actual for (x=0; x<(NumMovies); x++) { if (MiArray[x] == Minor) { Controlde = true; break; } } } /* Una vez pasado el número aleatorio y comprobado que no existe en ningún elemento del Array crea un nuevo elemento del Array e introduce el nuevo valor. A continuación subimos el valor de la variable, para el siguiente elemento */ MiArray[ValorIni] = Minor; ValorIni++; return Minor; /*return.. se utiliza para que al solicitar una función nos devuelva el valor de la variable que se indica. */}//-----------------------------------------------------------------------------------------------------------function activarsonido() { /*En esta variable solicita mediante la función, la entrada de un numero válido. */ MiNum = Busqueda(); var musica = TextoSound+MiNum+ArchivoExtension; playMusic.loadSound(musica, true); /* el evento ...onSoundComplete activa la función una vez se ha acabado de reproducir el sonido, y el condicional if.. cierra el ciclo cuando se ha acabado de emitir todos los archivos de sonido */ playMusic.onSoundComplete = function() { if (ValorIni<(NumMovies)) { activarsonido(); } };}//-----------------------------------------------------------------------------------------------------------/*Este evento inica la reproducción, yo lo he puesto al cargar la línea principal de tiempo , pero se puede modificar y colocar en cualquier otro evento, por ejemplo en un botón "on(release)..." */_root.onLoad = function() { activarsonido();};//-----------------------------------------------------------------------------------By Silvestre
... fin del código

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas