java關於Applet播放不出聲音的解決方案

整體環境:eclipse8+jdk1.8

在初學java的applet編程時,可能會遇到這樣的問題:音頻文件無法播放出聲音,視頻文件無法正常播放

在找了一段時間代碼bug發現沒有任何錯誤後,你氣的大噴eclipse真垃圾,連個applet都不能正常播放,然後再diss applet早被淘汰了,爲什麼還要用它!

(雖然applet差不多被淘汰是因爲java有了更好的選擇,比如用JFrame能更好的實現applet功能,而且可以使用main函數作爲程序入口,能和其他代碼完美的搭配起來;

相比起來,applet只能放在網頁上運行,而且程序入口並不是main,再加上applet很難做出炫到滿天飛的UI,顯然現在applet毫無用武之地,但Java的播放音頻等功能還是放在appet類庫裏面的,所以你學了applet並不吃虧,可以很好的應用在JFrame上)

閒話少說,進入正題:

雖然你播放不出音樂,但是。。applet和eclipse表示並不背這個鍋——

先檢查一下你給的音頻文件是不是.wav後綴,不是的話先下載個格式工廠之類的轉換軟件把它轉成.wav後綴

再看看你音頻文件放的位置,要放在你所在的項目的bin目錄下(用eclipse直接運行),也就是applet的getCodeBase()方法輸出的url

具體做法:

 

我們可以看到getCodeBase返回了bin目錄下,那麼你就老老實實地把這個音頻文件放在該目錄下。

像這樣就可以了。

解釋eclipse在運行applet時的操作:

我們可以看到在bin目錄下有個java.policy.applet的applet文件,你可以打開它看看,

發現是這樣:

它的作用是授予執行代碼java的所有權限。

這個文件是你運行applet後產生的,原因是因爲applet運行的安全級別要求比較高,所以要拓寬它的權限。

除了這個applet文件外,我們還可以看到出現了一個html文件,這個文件你可以打開看看,如下:

很明顯,就是applet在瀏覽器上運行時藉助的html文件

到這裏你應該差不多清楚了,當你在eclipse運行java applet時,首先eclipse會用javac編譯你所運行的java文件(也就是src的.java文件,在這裏假設爲test.java文件),然後得到一個test.class文件,放在bin目錄裏,同時自產生一個html文件,然後通過與瀏覽器交互把運行結果給顯示出來。

我們可以看到最終是要運行html文件,所以你的資源文件比如123.wav就必須要放到和html同目錄的地方,也就是bin目錄下。

那麼我們也可以知道在命令行怎麼運行applet:

先cmd進src目錄,然後javac test.java 得到一個有JVM編譯的class文件,然後自己寫一個test.html文件,把applet code = "test.class"設置好,然後運行你的apache或者別的什麼服務器,然後http://localhost/test.html 運行

或者直接cmd appletviewer test.class運行

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章