AS3代码 - 声音没有播放

时间:2013-01-16 00:05:16

标签: actionscript-3 flash audio mp3

我正在尝试使用外部mp3文件在as3代码中播放声音。

所以这是我正在使用的代码:

    private function playSound():void
    {
        trace("loading sound");
        var mySound:Sound = new Sound();
        mySound.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
        mySound.load(new URLRequest("Menu.mp3"));
        mySound.play();
        trace("playing sound");
    }

    private function handleIOError(evt:IOErrorEvent):void
    {
        //handle error if needed
    }

音乐根本就不播放。

出现“加载声音”和“播放声音”的痕迹,以便运行代码。

mp3文件Menu.mp3与用于运行项目的.fla文件位于同一文件夹中。这是正确的目录吗?我试着移动它但仍然无法播放声音。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

我有一些建议可能会有所帮助:

  1. 将mySound声明为类级属性。垃圾收集器可能会过早地处理变量,因为它是本地的。

  2. mySound.play()返回一个SoundChannel对象。尝试将其存储在类级属性中。

  3. 在加载声音之前,为Event.COMPLETE的声音添加事件侦听器。发生此事件后尝试播放声音。实际上,您可能会尝试在加载之前播放声音。

  4.     private var mySound:Sound;
        private var mySoundChannel:SoundChannel;
    
        private function playSound():void
        {
            mySound = new Sound();
            mySound.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
            mySound.addEventListener(Event.COMPLETE, handleLoadCompletion);
            mySound.load(new URLRequest("Menu.mp3"));
        }
    
        private function handleLoadCompletion(evt:Event):void
        {
            mySoundChannel = mySound.play();
        }
    
        private function handleIOError(evt:IOErrorEvent):void
        {
            //handle error if needed
        }
    

    修改
    在审核the docs之后,我认为建议3没有必要。