无法使用剪辑在 java 中播放声音
Can't play sound in java using clip
我想使用下面的代码在 java 中播放一些声音。那个声音是 WAV 格式的,所以我认为这段代码应该可以正常工作,但它没有播放声音,而是什么都不做。我的控制台上什至没有错误。那么有人可以帮我让这段代码播放声音吗? (这个声音包含在我的 src 文件中的一个包中)
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Clip clip = AudioSystem.getClip();
File file = new File("C:\Users\Jovan\Desktop\song.wav");
AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
clip.open(inputStream);
clip.start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
你刚刚启动了这个线程,所以创建一个对象:
import java.io.*;
import javax.sound.sampled.*;
class x {
public static void main(String[] args) {
Thread b= new Thread(new Runnable() {
@Override
public void run() {
try {
Clip clip = AudioSystem.getClip();
File file = new File("G:/skit/msg.wav");
AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
clip.open(inputStream);
clip.start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
b.start();
}
}
您必须等待剪辑播放结束。您也可以创建一些 Listener 但这更复杂。当剪辑完成播放时(isActive() 为假)您结束。
public class P {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println("started");
Clip clip = AudioSystem.getClip();
File file = new File(".......................wav");
AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
clip.open(inputStream);
clip.start();
while(clip.isOpen()) {
try { Thread.sleep(2000); } catch(InterruptedException ie) {}
if(!clip.isActive()) break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
我想使用下面的代码在 java 中播放一些声音。那个声音是 WAV 格式的,所以我认为这段代码应该可以正常工作,但它没有播放声音,而是什么都不做。我的控制台上什至没有错误。那么有人可以帮我让这段代码播放声音吗? (这个声音包含在我的 src 文件中的一个包中)
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Clip clip = AudioSystem.getClip();
File file = new File("C:\Users\Jovan\Desktop\song.wav");
AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
clip.open(inputStream);
clip.start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
你刚刚启动了这个线程,所以创建一个对象:
import java.io.*;
import javax.sound.sampled.*;
class x {
public static void main(String[] args) {
Thread b= new Thread(new Runnable() {
@Override
public void run() {
try {
Clip clip = AudioSystem.getClip();
File file = new File("G:/skit/msg.wav");
AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
clip.open(inputStream);
clip.start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
b.start();
}
}
您必须等待剪辑播放结束。您也可以创建一些 Listener 但这更复杂。当剪辑完成播放时(isActive() 为假)您结束。
public class P {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println("started");
Clip clip = AudioSystem.getClip();
File file = new File(".......................wav");
AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
clip.open(inputStream);
clip.start();
while(clip.isOpen()) {
try { Thread.sleep(2000); } catch(InterruptedException ie) {}
if(!clip.isActive()) break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}