java关于Applet播放不出声音的解决方案

版权声明:仅供研究,转载请注明出处。 https://blog.csdn.net/CSUstudent007/article/details/85245525

整体环境: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"设置好,然后cmd appletviewer test.html运行

猜你喜欢

转载自blog.csdn.net/CSUstudent007/article/details/85245525