0

我一直在阅读一些教程,试图找到如何嵌入音频文件并在 AS3 中播放它们,并且它们倾向于显示非常相似的示例。但是,当我尝试使用这些示例时,没有播放任何内容。我的 mp3 文件将成功嵌入,所有代码行将成功执行,但没有声音。以下面的代码为例:

package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.media.Sound;

    public class Main extends Sprite 
    {
        [Embed(source='/../lib/Kalimba.mp3')]        
        private var MySound : Class;         
        private var sound : Sound;

        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            sound = (new MySound()) as Sound;
            sound.play();
        }       
    }   
}

这里出了什么问题?网上很多例子基本都是用这段代码,只是改了变量名之类的。我正在使用 FlashDevelop,以防万一。谢谢。

编辑 显然它以某种方式链接到该文件。我尝试了 Kalimba.mp3、Maid with the Flaxen Hair.mp3 和 Sleep Away.mp3,所有这些都是 Windows 7 在 Libraries\Music\Sample Music 中的默认设置。他们都没有工作。然后我在别处下载了一个随机的 mp3 文件并尝试使用它,它工作得很好(Blackbird Blackbird - Heartbeat.mp3 来自http://www.last.fm/music/+free-music-downloads/sample)。我尝试使用转换器来确保 Kalimba 的频率为 44100 Hz,比特率为 128 kbps,但这似乎不起作用。有什么不同?

4

1 回答 1

1

它对我来说非常适合你的代码。检查您的 mp3 文件。尝试不同的文件,看看它是否有效。

还要检查一些愚蠢的错误,例如:

  • 您是否使用 addChild() 添加 Main 类的实例?Main.as 中的 init() 仅在您将其添加到显示列表后才会触发
  • 您的源中的路径是否正确?我已将路径更改为“test.mp3”,确保将您的 mp3 放在根文件夹中。
于 2013-08-12T03:58:46.510 回答