2

ミニゲームに取り組んでいて、初めてゲームにサウンドを追加しましたが、2つの問題が発生しました。1つは、アプレットをブラウザにロードしたときと、タブを閉じたときです。完了したら、バックグラウンドミュージックが少し再生され続けます。私はこれを使ってバックグラウンドを再生しています:

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

そしてそれはinit()の中にあります

2番目の問題は、アプレットを起動するたびに、署名されたコードと署名されていないコードが混在していること、および安全でない可能性があることを示す警告が表示されることです。今までに一度も手に入らなかったので、サウンドファイルだと思いますが、どうしたらいいですか?

http://www.FreeMinecraftHost.com/ParticleDefenderは、アプレットが表示するメッセージを確認したい場合に、アプレットがホストされる場所です。

4

2 に答える 2

1

私が受け取った警告は、「署名されたコードと署名されていないコードの混合」については何も述べていませんでしたが、アプレットがサンドボックスで機能することを確認するための「信頼できるコードを許可する」ダイアログを拒否しました。それはうまく機能しているようです。左右に動かし、撃ち、敵を破壊し、敵に破壊され、(v。大音量の)音楽トラックを聞いて、ゲームを再開することができました。

アプレット要素は単一の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 に答える