代码如下:
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(); //停止 }