Comunidad de diseño web y desarrollo en internet online

mp3 streaming con música externa

Citar            
MensajeEscrito el 21 Sep 2009 06:58 pm
Hola a todos.

Quizás muchos de ustedes ya conocen el excelente tutorial de Tiago's Weblog acerca de como hacer un reproductor personalizado de mp3 mediante streaming.

Este tip es para que puedan hacer lo mismo pero con archivos externos al sitio donde alojan su web. En mi caso estoy usando mp3 royalty free de la página de Last.fm http://www.lastfm.es/music/+free-music-downloads.

1. Crear los botones con los cuales vamos a manipular el sonido.
btn_play
btn_stop
btn_prev
btn_next
2. Crear un XML usando Dreamweaver o el block de notas con el siguiente código:

Código XML :

< ?xml version='1.0' encoding='utf-8'?>
<songs>
<song name="Pixel2Life Soundtrack 01" file="music/p2l_01.mp3" >
</song><song name="Twodded Soundtrack 01" file="music/twod_01.mp3" >
</song></songs>


Para que esta herramienta funcione con archivos externos, basta con reemplazar en la sentencia file="url del mp3"
Ejemplo:

Código XML :

< ?xml version='1.0' encoding='utf-8'?>
<songs>
<song name="Pixel2Life Soundtrack 01" file="http://freedownloads.last.fm/download/297170760/Shot%2BIn%2BThe%2BBack%2BOf%2BThe%2BHead.mp3" >
</song><song name="Twodded Soundtrack 01" file="http://freedownloads.last.fm/download/216283560/Bear.mp3" >
</song></songs>


El código que deben ingresar en la película el el frame del sonido es este:

Código ActionScript :

stop();
playlist= new XML();
playlist.ignoreWhite=true;
playlist.onLoad = function (success) {
if(success) {
_global.songname = [];
_global.songfile = [];
for (var i=0; i<playlist .firstChild.childNodes.length; i++) {
_global.songname[i] = playlist.firstChild.childNodes[i].attributes.name;
_global.songfile[i] = playlist.firstChild.childNodes[i].attributes.file;
trace(songname[i]+" "+songfile[i]); }
_root.createEmptyMovieClip("sound_mc",1);
_root.sound_mc.sound_obj = new Sound();
_global.song_nr = random(songfile.length); _root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]); 
} else {display_txt.text="Error Loading XML"}
}
MovieClip.prototype.songStarter = function (file, name) {
this.sound_obj.loadSound(file,true)
this.onEnterFrame = function () {
if(this.sound_obj.position>0) {
delete this.onEnterFrame;
this._parent.display_txt.text=name; 
} else {
this._parent.display_txt.text="loading..." 
}
}
this.sound_obj.onSoundComplete = function () {
(song_nr==songfile.length-1)? _global.song_nr=0 : _global.song_nr++;
_root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]);
}
}
btn_play.onRelease = function () {
this._parent.sound_mc.songStarter(songfile[song_nr],songname[song_nr]);
}
btn_stop.onRelease = function() {
this._parent.sound_mc.sound_obj.stop(); 
}
btn_next.onRelease = function () {
(song_nr==songfile.length-1)? _global.song_nr=0 : _global.song_nr++;
_root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]);
}
btn_prev.onRelease = function () {
(song_nr==0)? _global.song_nr=songfile.length-1 : _global.song_nr--;
_root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]);
}
playlist.load("playlist.xml");
</playlist>


Si quieren mas detalles, ir aquí (English)

Si quieren el reproductor con Tiempo transcurrido, control de volumen entre otras cosas, ir aquí (English)

Ahora bien, si quieren algo todavía mas completo como Visor de carátulas y botón de pausa, ir aquí (English)

Mi ejemplo: http://www.acticonsulting.com/flash/es/

Espero que les sirva.

Por alexkudrow

33 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Nov 2010 02:01 pm
hola gente,

Intente crear este reproductor solo que necesitaba la opcion de play y stop, en mi computador funciono pero cuando lo subi para verlo en la web no me sirvio, no carga las canciones de ninguna de las dos formas que dice en el ejemplo ya sea por el nombre de la carpeta o la ruta absoluta.

Les agradeceria eternamente si me pueden ayudar con este tema, ya que me estan apurando aca con esta modificacion y no se que mas hacer para que funcione.

Les paso la ruta para que vena el ejemplo que estoy necesitando

http://panamamusic.com.pa/newsite/descargas.php

Gracias

Por kromax

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Nov 2010 02:12 pm
tengo otro inconveniente, si escucho la cancion en mi pc local una vez que termina la cancion automaticamente en ese mismo player pasa a la segunda cancion, por ahi debe ser una boludez atomica pero no se como solucionarlo, porfa si pueden ayudarme con esto me salvarían la vida jajajaj. un abrazo

Por kromax

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Nov 2010 06:07 pm
Hola. Necesito el código AS y el código XML para detectar el error.

Por alexkudrow

33 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Nov 2010 06:33 pm
este es el codigo xml

<?xml version="1.0" encoding="utf-8"?>

<songs>

<song file="http://panamamusic.com.pa/newsite/swf/music/0.mp3" >
</song>

<song file="http://panamamusic.com.pa/newsite/swf/music/1.mp3" >
</song>

<song file="http://panamamusic.com.pa/newsite/swf/music/2.mp3" >
</song>

<song file="http://panamamusic.com.pa/newsite/swf/music/3.mp3" >
</song>
</songs>


-----------------------------------------------------------------------


y este es el codigo as

stop();
playlist= new XML();
playlist.ignoreWhite=true;
playlist.onLoad = function (success) {
if(success) {
_global.songfile = [];
for (var i=0; i<playlist .firstChild.childNodes.length; i++) {
_global.songfile[i] = playlist.firstChild.childNodes[i].attributes.file;
trace(songname[i]+" "+songfile[i]); }
_root.createEmptyMovieClip("sound_mc",1);
_root.sound_mc.sound_obj = new Sound();
_global.song_nr = random(songfile.length); _root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]);
} else {display_txt.text="Error Loading XML"}
}
MovieClip.prototype.songStarter = function (file, name) {
this.sound_obj.loadSound(file,true)
this.onEnterFrame = function () {
if(this.sound_obj.position>0) {
delete this.onEnterFrame;
this._parent.display_txt.text=name;
} else {
this._parent.display_txt.text="loading..."
}
}
this.sound_obj.onSoundComplete = function () {
(song_nr==songfile.length-1)? _global.song_nr=0 : _global.song_nr++;
_root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]);
}
}
btn_play.onRelease = function () {
this._parent.sound_mc.songStarter(songfile[song_nr],songname[song_nr]);
}
btn_stop.onRelease = function() {
this._parent.sound_mc.sound_obj.stop();
}

playlist.load("playlist.xml");
</playlist>

----------------------------------------------------------------------------------------------------

</playlist> este playlist no se porque lo colocaste ahi y lo comente mientras tanto para escucharlo en mi compu

mil gracias por tu ayuda si viste el ejemplo que pase me entenderas que por cada reprodutor se tiene que escuchar la cancion correspondiente al nombre contiguo que aparece.

te mando un abrazo mi hermano me estas ayudando mucho en serio

Por kromax

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Nov 2010 07:29 pm
Todo parece estár bien... lo único que creo que te debe estár dando problema es la ubicación del playlist.xml. ¿Tienes tanto el swf como el playlist.xml en el mismo directorio? de lo contrario el swf no sabrá donde encontrar la lista para reproducirla... prueba a colocar la ruta del playlist completa: ej http://panamamusic.com.pa/newsite/playlist.xml es decir:

código AS2
}
playlist.load("http://panamamusic.com.pa/newsite/playlist.xml");
</playlist>

código AS2

Me cuentas si te funciona.

Suerte

Por alexkudrow

33 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.