Foros del Web » Creando para Internet » Flash y Actionscript »

Código para AutoPlay False reproductor Mp3 y XML

Estas en el tema de Código para AutoPlay False reproductor Mp3 y XML en el foro de Flash y Actionscript en Foros del Web. Hola! Tengo un reproductor en Flash que carga las canciones por XML, ya probé miles de cosas pero no puedo hacer que sea autoplay=false, o ...
  #1 (permalink)  
Antiguo 13/06/2011, 11:45
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Código para AutoPlay False reproductor Mp3 y XML

Hola!
Tengo un reproductor en Flash que carga las canciones por XML, ya probé miles de cosas pero no puedo hacer que sea autoplay=false, o sea, lo que quiero es que el reproductor no arranque solo, sino que arranque el audio de las canciones cuando se le da PLAY.

Acá el código del FLA

import mx.transitions.Tween;
import mx.transitions.easing.*;

var song_folder:String = "audio/";
var song_list:Array = new Array();
var track_list:Array = new Array();
var artist_list:Array = new Array();
var album_list:Array = new Array();
var current:Number = 0;
var position:Number;
var new_volume:Number = 100;
var flashmo_xml:XML = new XML();
flashmo_xml.ignoreWhite = true;
flashmo_xml.onLoad = function()
{
var nodes:Array = this.firstChild.childNodes;
for(var i = 0; i < nodes.length; i++)
{
song_list.push(nodes[i].attributes.filename);
track_list.push(nodes[i].attributes.track);
artist_list.push(nodes[i].attributes.artist);
album_list.push(nodes[i].attributes.album);
}
play_song("start");
}
flashmo_xml.load( song_folder + "songs.xml");

fm_play.play_pause.onRelease = function()
{
if( this._parent._currentframe == 1 )
this._parent._parent.play_pause("pause");
else
this._parent._parent.play_pause("play");

this._parent.play();
}
fm_prev.onRelease = function()
{
this._parent.play_song("prev");
}
fm_next.onRelease = function()
{
this._parent.play_song("next");
}
function play_song(track:String):Void
{
if(track == "prev")
current--;
else if(track == "start")
current = 0;
else
current++;

if(current == song_list.length)
current = 0;
else if(current < 0)
current = song_list.length - 1;

s = new Sound(); s.loadSound(song_folder + song_list[current], true);
s.setVolume(new_volume);
track_title.text = track_list[current];
artist_name.text = artist_list[current];
album_title.text = album_list[current];
track_info.text = "Track " + (current+1) + " de " + song_list.length;
fm_play.gotoAndStop(1);
}
function play_pause(pp:String):Void
{
if(pp == "pause")
{
position = s.position;
s.stop();
}
else if(pp == "play")
{
s.start(position/1000);
}
}
var my_interval:Number;
my_interval = setInterval(update_bar, 100);
function update_bar():Void
{
var total_seconds:Number = s.duration/1000;
var minutes:Number = Math.floor(total_seconds/60);
var seconds = Math.floor(total_seconds)%60;
if(seconds < 10)
seconds = "0" + seconds;

var total_current_seconds:Number = s.position/1000;
var current_minutes:Number = Math.floor(total_current_seconds/60);
var current_seconds = Math.floor(total_current_seconds)%60;
if(current_seconds < 10)
current_seconds = "0" + current_seconds;

percent_loaded = Math.round(s.getBytesLoaded() / s.getBytesTotal() * 100);

if( percent_loaded != 100 && percent_loaded > 0)
loading_info.text = "cargado... " + percent_loaded + "%";
else
loading_info.text = "";

flashmo_bar._width = Math.round( s.position/s.duration*flashmo_bar_bg._width );
flashmo_pointer._x = flashmo_bar._width + flashmo_bar._x;

position_info.text = current_minutes +":"+ current_seconds + " / " + minutes +":"+ seconds;
if( s.getBytesLoaded() == s.getBytesTotal() && s.position == s.duration )
play_song();
}
var theMenu:ContextMenu = new ContextMenu();
theMenu.hideBuiltInItems(); _root.menu = theMenu;
var item:ContextMenuItem = new ContextMenuItem("Creado por Iván.Candle", flashmo);
theMenu.customItems[0] = item;
function flashmo() { getURL("http://www.ivancandle.com.ar", "_blank"); }

flashmo_pointer.onPress = function()
{
this.startDrag(true, flashmo_bar_bg._x, this._y, flashmo_bar_bg._width + flashmo_bar_bg._x, this._y );
s.stop(); clearInterval(my_interval);
}
flashmo_pointer.onRelease = flashmo_pointer.onReleaseOutside = function()
{
this.stopDrag();
new_position = s.duration * (this._x - flashmo_bar_bg._x) / (flashmo_bar_bg._width * 1000);
s.start(new_position); fm_play.gotoAndStop(1);
my_interval = setInterval(update_bar, 100);
}
flashmo_volume_pointer.onPress = function()
{
this.startDrag(true, flashmo_volume_bg._x, this._y, flashmo_volume_bg._width + flashmo_volume_bg._x, this._y );
}
flashmo_volume_pointer.onRelease = flashmo_volume_pointer.onReleaseOutside = function()
{
this.stopDrag(); new_volume = this._x - flashmo_volume_bg._x;
new Tween(flashmo_volume, "_width", Strong.easeOut, flashmo_volume._width, new_volume, 1.5, true);
s.setVolume(new_volume);
}



Acá el codigo del XML

<?xml version='1.0' encoding='utf-8'?>
<song autostart="no">
<song filename="Track01.mp3" track="01 bla bla" artist="nombre del artista" album="Nombre del album" />
<song filename="Track02.mp3" track="02 prueba bla bla bla" artist="nombre del artista" album="Nombre del album" />
<song filename="Track03.mp3" track="03 tema" artist="nombre del artista" album="Nombre del album" />
</songs>


Espero que alguno sepa como hacerlo!
Desde ya gracias y espero los comentarios
Ivan
  #2 (permalink)  
Antiguo 13/06/2011, 15:41
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 21 años, 4 meses
Puntos: 406
Respuesta: Código para AutoPlay False reproductor Mp3 y XML

Hola ivan_505:
Bienvenido al Foro.
Prueba cambiando ésta línea: s.loadSound(song_folder+song_list[current],true); por ésta: s.loadSound(song_folder+song_list[current],false);

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #3 (permalink)  
Antiguo 15/06/2011, 16:50
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Código para AutoPlay False reproductor Mp3 y XML

Hola Bandit, gracias por la respuesta,
probé haciendo lo que me dices y funciona, es como un autoplay=false como queria.

Pero aparece otro problema, que ahora al hacer click en los botones de tema siguiente y anterior, tengo que volver a darle play para que arranquen, antes con solo poner siguiente ya reproducia.

Sabes como puedo modificar el codigo de esa parte??
Espero algun comentario y gracias!
Ivan

Etiquetas: autoplay, false, flash, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:45.