flash - 在某些浏览器中外部加载的声音回声

标签 flash actionscript-3 audio

我正在为一个问题而苦苦挣扎,在Mac上的Chrome和PC上的Chrome,Opera和Safari中,它似乎播放了两次声音,并以相当随机的延迟(尽管不到半秒)产生了有害的回声效果。 。

我有2个通过LocalConnection通信的swf文件,主swf只是在第二个swf上调用了一个函数,并将URL作为参数传递给mp3文件。然后,第二个swf加载文件,然后onComplete播放它。

这在Mac和PC上的IE(这是第一个)和Firefox上都可以完美运行,但如上所述。

我什至实现了双重检查,以确保如果已经在播放声音,则不会播放声音。

一些示例代码:

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

以前有人对这个问题不休吗?我很迷路。

最佳答案

   private var channel:SoundChannel;

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

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

关于flash - 在某些浏览器中外部加载的声音回声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4312127/

相关文章:

apache-flex - 使用 Maven 编译时调试器不活动

actionscript-3 - AS3 阻止角色穿墙

node.js - Express + PassportJS 无法读取闪信

actionscript-3 - Return 和 numpad Enter 的区别

actionscript-3 - 如何停止 Flex/AIR 异或填充?

Air Native Extension 中的 Java 性能,如何优化?

javascript - 闪存录音,然后上传到服务器

C++/Win32 - 我的 MCI 使用中的什么导致了延迟?

javascript - 识别鼠标点击 Flash 元素

iphone - 声音无法在 iOS 中播放 - 不是源代码问题