Ya probe defasar el sonido, un segundo es demasiado lo defase como un .0001% y el loop funciona bien el problema es que ese factor de defasamiento difiere de maquina a maquina dependiendo la capacidad de procesamiento, monto el codigo que use para defasarlo por si le sirve a alguien:
Código ActionScript :
import flash.events.*;
import flash.media.*;
import flash.net.URLRequest;
import flash.utils.Timer;
var url:URLRequest;
var sonido_1:Sound;
var canal_1:SoundChannel;
var loop:Timer;
url=new URLRequest("sonido.mp3");
sonido_1=new Sound(url);
sonido_1.addEventListener(Event.COMPLETE,cargado);
function cargado(e:Event) {
var duracion:int;
var temp:int;
trace("cargado","tamaño:",sonido_1.length);
duracion=sonido_1.length;
temp=duracion/1000;
duracion=temp*1000;
temp=duracion*.0001;
duracion-=temp;
trace(duracion);
loop=new Timer(duracion,0);
canal_1=sonido_1.play();
loop.start();
loop.addEventListener(TimerEvent.TIMER,playsound);
canal_1.addEventListener(Event.SOUND_COMPLETE,de_nuevo);
}
function playsound(e:TimerEvent){
canal_1=sonido_1.play();
trace("play");
}
function de_nuevo(e:Event) {
trace("fin");
}
Para defasarlo leo la duracion del sonido en milisegundos y la trunco al guardarla en un entero asi que si el sonido dura 8045.879875465 me deshago de esos decimales insignificantes ya que la duracion se expresa en milisegundos y por lo mismo que son milisegundos los hago segundos (expresados en milisegundos sin decimales) con estas lineas:
Código :
temp=duracion/1000;
duracion=temp*1000;
Con esa nueva duracion por medio de prueba y error le resto cierto porcentaje
Código ActionScript :
temp=duracion*.0001;
duracion-=temp;
Este porcentaje es variable en cada maquina ya que es demasiado pequeño, alguna idea por favor necesito sacar un loop perfecto en todas las maquinas del mundo