求助关于在java中播放声音的问题
代码如下:
String userdir = "file:/"+System.getProperty("user.dir") ;
try {
URL eng = new URL(userdir+"/sound/engine.wav") ;
AudioClip sound = JApplet.newAudioClip(eng) ;
sound.loop() ;
} catch (Exception e) {
System.out.println("播放声音出现问题了") ;
}
这段代码目的是循环播放一个声音文件,但是每次都只听到登的一声便没了下文
但是改成如下代码后就可以了
try {
URL eng = new URL(userdir+"/sound/engine.wav") ;
AudioClip sound = JApplet.newAudioClip(eng) ;
while(true)
{
sound.loop() ;
Thread.sleep(3000) ;
}
} catch (Exception e) {
System.out.println("播放声音出现问题了") ;
}
主要是将sound.loop()方法置于一个while循环中,但是无法解释这是为什么?求解答!
------解决方案--------------------sound.loop(); 这个是不是就是读取一次音频文件?
------解决方案--------------------
Java code
没看懂LZ这些的意思:String userdir = "file:/"+System.getProperty("user.dir") ;
URL eng = new URL(userdir+"/sound/engine.wav") ;
看看我写的吧。
public static void main(String[] args) {
File a= new File("J:\\mp.wav");
URL url=null;
try {
url = a.toURL();//文件路径转换为URL
} catch (MalformedURLException e) {
e.printStackTrace();
}
AudioClip ac=Applet.newAudioClip(url);
ac.play();//播放
try {
Thread.sleep(1000);//如果需要停止就这里设置(毫秒),需要调用stop(),那样播放1秒后就暂停了
} catch (InterruptedException e) {
e.printStackTrace();
}
//ac.loop(); //循环播放(需要循环播放就调用loop() )
//ac.stop(); //停止
}