Внешне загруженные звуки отражаются в определенных браузерах - PullRequest
0 голосов
/ 30 ноября 2010

Я сталкиваюсь с проблемой, когда в Chrome на Mac и в Chrome, Opera и Safari на ПК он воспроизводит звуки дважды, генерируя нежелательный эхо-эффект с довольно случайной задержкой (всегда меньше половины второй хотя).

У меня есть 2 swf-файла, которые общаются через LocalConnection, основной swf просто вызывает функцию на втором swf и передает URL-адрес в mp3-файл в качестве параметра. Затем второй SWF-файл загружает файл и onComplete воспроизводит его.

Это прекрасно работает в IE (это первое) и Firefox как на Mac, так и на ПК, но перекликается, как упомянуто выше.

Я даже ввел двойную проверку, чтобы убедиться, что звук не воспроизводится, если звук уже воспроизводится.

Пример кода:

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;
}

Кто-нибудь сталкивался с этой проблемой раньше? Я очень потерян.

1 Ответ

0 голосов
/ 30 ноября 2010
   private var channel:SoundChannel;

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

      channel = audio.play( 0 , 1 );
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...