Java applet声音问题,声音继续关闭,我无法签署声音文件

时间:2012-08-24 04:47:45

标签: java audio applet code-signing

所以我正在开发一款迷你游戏,这是我第一次在游戏中添加声音,但我遇到了两个问题,第一个问题是当我在浏览器中加载applet时,我关闭了标签当我完成后,背景音乐会继续播放一段时间。我正在使用它来播放背景:

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

这就在init()

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

http://www.FreeMinecraftHost.com/ParticleDefender是托管小程序的地方,如果您希望看到它带来的消息。

2 个答案:

答案 0 :(得分:1)

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

由于applet元素只显示一个Jar,而主要类在Jar中,我无法理解你如何得到你所看到的消息。然而,没有任何提示的解决方案似乎是显而易见的。

不要签名Jar!

答案 1 :(得分: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) {}

     }