[英]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();
}
}
});
}
您必須等待剪輯播放和結束。 您還可以創建一些偵聽器,但這更復雜。 當剪輯完成播放(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();
}
}
你剛剛開始這個線程,所以創建一個對象:
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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.