在flex中无法播放声音文件

时间:2012-09-19 02:39:24

标签: flex

我在flex中写了一个游戏,那个游戏有声音。我从这样的资源加载声音来播放声音文件,这是函数:

public function playSound(value:String, vol:Number):void
{

 mySound=new Sound();
 var urlRequest:URLRequest=new URLRequest(value);
 mySound.load(urlRequest);
 sChannel=mySound.play(0, 0, new SoundTransform(vol, 0));
}

当我想播放声音时,我称之为:

playSound("sounds/abc.mp3", 1)

当前项目中包中的“声音”。当我在日食中建立时,它工作正常,但当我把这个游戏放在网上时,我听不到音乐。

有人能告诉我如何解决吗

3 个答案:

答案 0 :(得分:0)

var urlRequest:URLRequest=new URLRequest(value);

你正在传递一个相对路径,所以当它在远程机器上运行时,它正在寻找声音并且显然没有找到它。您需要嵌入声音,详见this question

[Embed(source="myfile.mp3")]
[Bindable] //Not required. Just an example of using multiple meta tags.  
public var soundCls:Class;

然后,我有点生疏,但我相信它是

sChannel = new soundCls().play(0, 0, new SoundTransform(vol, 0));

答案 1 :(得分:0)

试试吧。

    var urlReq:URLRequest = new URLRequest("assets/sound/sound3.mp3");
    var sound:Sound= new Sound(urlReq);

    sound.play();

答案 2 :(得分:0)

您是否曾尝试通过

修改声音文件
  1. 删除声音文件中的所有元数据。

  2. 将其导出为新的MP3文件。

  3. 加载太大了吗?尝试添加错误事件以进行收听。