如果有个图象文件是带路径的,为什么不用以下这个方法呢?
String fileName="d:\mypicture\1.jpg";
Image img=Toolkit.getDefaultToolkit().getImage(fileName);
这时获取的就是这个图象文件了!
要获取声音文件那简单,请看以下代码:
String fileName="abc.au";
try
{
URL u=new URL("file","localhost",filename);
AudioClip clip=Applet.newAudioClip(u);
clip.play();
}
catch(MalformedURLException e)
{
}
在创建URL实例的时候,这个方法要抛出MalformedURLException的异常,所以你要捕获这个异常。还有这个声音文件的格式必须是au的,这是Sun公司UNIX系统中的声音文件格式,我目前只知道在Java中可以播放这个格式的声音文件。要获取其他格式的声音文件,还请有那位知道的奉献出来哈!
String fileName="d:\mypicture\1.jpg";
Image img=Toolkit.getDefaultToolkit().getImage(fileName);
这时获取的就是这个图象文件了!
要获取声音文件那简单,请看以下代码:
String fileName="abc.au";
try
{
URL u=new URL("file","localhost",filename);
AudioClip clip=Applet.newAudioClip(u);
clip.play();
}
catch(MalformedURLException e)
{
}
在创建URL实例的时候,这个方法要抛出MalformedURLException的异常,所以你要捕获这个异常。还有这个声音文件的格式必须是au的,这是Sun公司UNIX系统中的声音文件格式,我目前只知道在Java中可以播放这个格式的声音文件。要获取其他格式的声音文件,还请有那位知道的奉献出来哈!
我试过了,好像
fileName="d:\mypicture\1.jpg";这样写是不行的错误提示:
illegal escape character
im1=Toolkit.getDefaultToolkit().getImage("d:\j4.jpg");
出错信息如下:java.security.AccessControlException: access denied (java.io.FilePermission d:\4
.jpg read)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:270)
at java.security.AccessController.checkPermission(AccessController.java:
401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.lang.SecurityManager.checkRead(SecurityManager.java:887)
at sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:408)
at sun.awt.SunToolkit.getImage(SunToolkit.java:422)
at p150.init(p150.java:15)
at sun.applet.AppletPanel.run(AppletPanel.java:341)
at java.lang.Thread.run(Thread.java:536)
java还支持播放wav,SND声音格式。
除了采取顶楼的变通方法,还有吗?
你原来是要在applet程序中读取图象文件和声音文件啊!我记得在JDK中有个工具好象叫policyTool,其中可以作一下设置,使得applet程序可以读写本地的文件。但具体怎样设置我已经有点忘记了!希望知道的朋友能出来解释一下!
Java是还支持播放wav和SND文件的吗?这SND是什么文件呢?你知道在Java中是如何实现播放这些声音文件的吗?写一段代码出来好让大家研究一下吗?
public AudioClip getAudioClip(String url)
public AudioClip getAudioClip(String url,String name) 同样的,我们可以调用getCodeBase()方法来获取当前目录的URL,这样就可以很方便地调用当前目录下的声音文件。例如:
AudioClip clip1=getAudioClip(getCodeBase(),”carbrake.wav) 注:carbreak.wav是office97中带的,你可以在c:windowsmediaoffice97目录中找到,在此假设已拷贝到了c:javastudy目录中。 这样,我们就获得了一个AudioClip(声音片段)clip1,这个声音片段中存放的就是声音文件carbreak.wav。 2.操作声音片段 使用声音比使用图像要简单得多,我们现在就可以直接对一个AudioClip(声音片段)进行操作了,不再需要转换(图像就得从Image转成ImageIcon)。 1) 播放声音片段: 声音片段名.play() 一句话,就是直接调用声音片段对象的play()方法就可以将其播放出来。 2) 停止播放: 声音片段名.stop() 很简单吧,play就是播放,stop就是停止,好象在用放音机一样。 3) 循环播放: 声音片段名.loop() 有时,我们可能会需要一直播放一段声音,在Java语言中提供了一个很简单的方法来实现,那就是声音片段的loop方法。 实例说明 首先将c:windowsmediaoffice97carbrake.wav拷贝到c:javastudy目录下,然后输入以下源程序。 源程序:useAudio.java
import javax.swing.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class useAudio extends JApplet
{
AudioClip carbrake;
public void init()
{
JPanel panel1=(JPanel)getContentPane();
panel1.setLayout(new GridLayout(3,1));
carbrake=getAudioClip(getCodeBase(),"carbrake.wav");
JButton buttonPlay=new JButton("Play");
JButton buttonStop=new JButton("Stop");
JButton buttonLoop=new JButton("Loop");
panel1.add(buttonPlay);
panel1.add(buttonStop);
panel1.add(buttonLoop);
buttonPlay.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
carbrake.stop();
carbrake.play();
}
});
buttonStop.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
carbrake.stop();
}
});
buttonLoop.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
carbrake.stop();
carbrake.loop();
}
});
}
}
你可以到http://www.linuxaid.com.cn/articles/4/3/432546442.shtml去看看。
Ok,感谢,大家共同学习,共同提高哈!
不过这个SND格式的文件到底是什么文件你知道吗?
to ervinlj(阳光男孩) 不客气.Apple公司的音频格式,扩展名为SND或MAC 。我试过了java好像可以播放au,wav格式.可以但snd却是不行。不知道为什么。