Ngắn nhất hình thức (mà không cần phải cài đặt các thư viện ngẫu nhiên)?
public static void play(String filename)
{
try
{
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(new File(filename)));
clip.start();
}
catch (Exception exc)
{
exc.printStackTrace(System.out);
}
}
Vấn đề duy nhất là không có cách nào tốt để làm cho phương pháp chặn này đóng và hủy bỏ dữ liệu sau khi * .wav kết thúc. clip.drain()
cho biết nó đang chặn nhưng không. Đoạn clip không hoạt động QUYỀN SAUstart()
. Các chỉ làm việc nhưng xấu xí cách tôi tìm thấy là:
// ...
clip.start();
while (!clip.isRunning())
Thread.sleep(10);
while (clip.isRunning())
Thread.sleep(10);
clip.close();
Nguồn
2012-07-17 01:20:03
những gì đã không làm việc và tại sao – Bozho