2012-08-24 77 views
2

因此,我正在開發一款迷你遊戲,並且第一次爲我的遊戲添加聲音,但遇到了兩個問題,首先是當我在瀏覽器中加載小程序,並在完成後關閉標籤時,背景音樂繼續播放一段時間。我使用這個播放背景:Java小應用程序聲音問題,聲音繼續關閉,我無法簽署聲音文件

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

這就是在init()內

我的第二個問題是,每當我開始小程序,它會彈出一個警告說有混合物簽名和未簽名的代碼,並且可能不安全。我從來沒有得到過,所以我認爲這是聲音文件,我能做些什麼?

http://www.FreeMinecraftHost.com/ParticleDefender是applet託管的地方,如果你想看到它帶來的消息。

回答

1

我收到的警告沒有說'混合簽名&未簽名的代碼',但我拒絕'允許受信任的代碼'對話框來檢查applet是否可以在沙盒中工作。它似乎工作得很好,我可以向左移動&,射擊,消滅敵人,被他們摧毀,聽到(大聲)音樂曲目,然後重新開始遊戲。

由於applet元素只顯示一個Jar,並且主類在該Jar中,所以我無法理解您如何才能得到像您看到的消息。儘管如此,解決方案沒有得到任何提示似乎很明顯。

不要簽署罐子!

+0

不簽名的jar嗎?!我以爲你總是要簽署這個罐子? –

+0

你認爲是錯的。 –

+0

我做到了!這解決了簽名問題!至於聲音問題,我添加了destroy()方法並攔截了聲音片段,但仍然沒有工作 –

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) {} 

    } 
+0

*「那傢伙是個混蛋我的答案」*你是唯一一個對你的答案有貢獻的人。所以你是個混蛋? –