2010-11-30 5 views
0

Je suis aux prises avec un problème où, dans Chrome sur Mac et Chrome, Opera et Safari sur PC, il semble jouer des sons deux fois, générant un effet d'écho indésirable avec un plutôt délai aléatoire (toujours moins d'une demi-seconde si).Echos de sons externes dans certains navigateurs

J'ai 2 fichiers SWF qui communique via une LocalConnection, le swf principal appelle simplement une fonction sur le second swf et en passant un URL à un fichier mp3 en tant que paramètre. Le second swf charge alors le fichier et onComplete le joue.

Cela fonctionne parfaitement sur IE (c'est une première) et Firefox sur Mac et PC mais échoue comme mentionné ci-dessus.

J'ai même mis en œuvre une double vérification pour m'assurer qu'un son ne serait pas lu si un son est déjà en cours de lecture.

Quelques exemples de code:

var audio:Sound; 
var isPlayingSound:Boolean = false; 
var soundURL:String; 

public function lcRecieve(url:String = ""):void{ 
    soundURL = url; 
    if (soundOn && !isPlayingSound){ 
     playSound(); 
    } 
} 

public function playSound():void { 
    if(!isPlayingSound){ 
     audio = new Sound(new URLRequest(soundURL)); 
     audio.addEventListener(Event.COMPLETE, onSoundComplete); 
    } 

} 
public function onSoundComplete(e:Event):void{ 
     audio.play(0, 1).addEventListener(Event.SOUND_COMPLETE, soundFinnishedPlaying); 
     isPlayingSound = true; 
} 

private function soundFinnishedPlaying(e:Event):void { 
     e.target.removeEventListener(Event.SOUND_COMPLETE, soundFinnishedPlaying); 
     audio = null; 
     isPlayingSound = false; 
} 

Toute personne stumbeled sur ce problème avant? Je suis vraiment perdu.

Répondre

0
private var channel:SoundChannel; 

    public function onSoundComplete(e:Event):void 
    { 
     if(channel != null) 
      channel.stop(); 

     channel = audio.play(0 , 1); 
    } 
+0

Apparemment, cela fonctionne parfaitement. :) Merci beaucoup l'homme. – Gubb

Questions connexes