2

所以我在做一个小游戏,我第一次在我的游戏中添加声音,但我遇到了两个问题,第一个是当我在浏览器中加载小程序时,当我关闭标签时完成后,背景音乐继续播放一会儿。我正在使用它来播放背景:

AudioClip audioClip = getAudioClip(getCodeBase(), "bg.wav");
audioClip.loop();

这在 init() 里面

我的第二个问题是,每当我启动小程序时,它都会显示警告说有签名和未签名代码的混合,并且它可能是不安全的。我以前从来没有得到过,所以我认为是声音文件,我该怎么办?

http://www.FreeMinecraftHost.com/ParticleDefender是托管小程序的地方,如果您想查看它显示的消息。

4

2 回答 2

1

我收到的警告没有说明“混合签名和未签名代码”,但我拒绝了“允许受信任代码”对话框来检查小程序是否可以在沙箱中工作。它似乎工作得很好,我可以左右移动,射击,摧毁敌人,被他们摧毁,听到(v。响亮的)音乐曲目,然后重新开始游戏。

由于 applet 元素仅指示一个 Jar,而主类在该 Jar 中,我无法理解您如何获得如您所见的消息。尽管如此,没有得到任何提示的解决方案似乎很明显。

不要在罐子上签名!

于 2012-08-24T05:17:57.310 回答
0

那家伙是个混蛋,弄乱了我的答案(就像我说的已经好几年了)

无论如何,这是我的音频处理程序,经过仔细检查,我发现在我的程序中我正在循环播放背景音乐,大约 1 分钟的音频文件。音频剪辑将在获胜/松散/或退出时被一个单独的非常短的剪辑中断,并且音频将自行终止。你可以通过播放一段没有任何内容或退出声音的短片来扼杀你的音乐。

顺便说一句,我在第一个答案中所说的并不是我们当时确实必须这样做的猜测。

private void musicHandler(int musicFunction)
 {
      for( int counter =0; counter < 3; counter++)
      audioClip[counter].stop();
        if(musicFunction == 0)
            audioClip[musicFunction].loop();
        else
             audioClip[musicFunction].play();

  }
 AudioClip audioClip[] = new AudioClip[10]; 
 private void musicLoader()
  {
    try
      {
        URL baseURL = new URL("file:" + System.getProperty("user.dir") + "/");
        URL completeURL = new URL(baseURL, "game.wav");
        audioClip[0] = Applet.newAudioClip(completeURL);
        completeURL = new URL(baseURL, "TAPS.WAV");
        audioClip[1] = Applet.newAudioClip(completeURL);
        completeURL = new URL(baseURL, "YEAH.WAV");
        audioClip[2] = Applet.newAudioClip(completeURL); 
        audioClip[0].loop();
       }
     catch (MalformedURLException exception) {}

     } 
于 2012-08-24T05:41:23.520 回答