0

我用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)

当前项目中包中的“声音”。当我在 Eclipse 中构建时它工作正常,但是当我将该游戏放到网络上时,我听不到音乐。

谁能告诉我如何解决

4

3 回答 3

0
var urlRequest:URLRequest=new URLRequest(value);

您传递的是相对路径,因此当它在远程机器上运行时,它会在那里寻找声音,但显然找不到。您需要嵌入声音,如本问题所述:

[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));
于 2012-09-19T02:56:43.620 回答
0

试试这个。

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

    sound.play();
于 2012-09-21T05:28:44.630 回答
0

你有没有试过修改你的声音文件

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

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

  3. 是否太大而无法加载?尝试添加错误事件来监听。

于 2016-12-31T18:56:25.330 回答