actionscript-3 - 为什么不播放此嵌入式声音文件?

标签 actionscript-3 audio air embed flash

我一直在浏览一些教程,试图找到如何嵌入音频文件并在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,带有Flaxen Hair.mp3的女仆和Sleep Away.mp3,它们都是Libraries \ Music \ Sample Music中Windows 7的默认设置。他们都没有工作。然后我在其他地方下载了一个随机mp3文件并尝试使用它,效果很好(Blackoji Blackbird-Heartbeat.mp3 from http://www.last.fm/music/+free-music-downloads/sample)。我尝试使用转换器来确保Kalimba处于44100 Hz,比特率为128 kbps,但这似乎没有用。有什么不同?

最佳答案

它对您的代码非常适合我。检查您的mp3文件。尝试使用其他文件,看看是否可行。

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

  • 您是否使用过addChild()添加Main类的实例?仅当您将Main.as中的init()添加到显示列表
  • 后,它才会启动
  • 源中的路径正确吗?我将路径更改为“test.mp3”,请确保将您的mp3放在根文件夹中。
  • 关于actionscript-3 - 为什么不播放此嵌入式声音文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178911/

    相关文章:

    actionscript-3 - Actionscript 3 影片剪辑与主时间线的关系

    flash - AS3 : Impossible to copy DisplayObjects with content?

    c++ - 如何使用 MFC 创建 VST 插件?

    audio - 显示 Windows 8 Metro 音量 slider /通知/小部件/指示器?

    android - 在特定时间循环播放声音

    ios - AIR 移动调试 - "Enter ip address or hostname"

    ios - 使用 iTunesConnect TestFlight 添加测试人员

    ios - Actionscript 3 是否有等效的 Reachability 类?

    php - 将 AS3 Flash (swf) 渲染到视频服务器端

    ios - CodeSign 验证失败 - Adob​​e Flash AIR iOS