2010-10-13 38 views
11

Tôi đang cố gắng mã hóa một hộp thoại báo lỗi và tôi muốn nó gọi đúng âm thanh do hệ thống chỉ định. Có cách nào để truy cập âm thanh hệ thống từ Java (ví dụ: Âm thanh khởi động, tiếng bíp mặc định, dấu hoa thị, dừng quan trọng, v.v.) không?Âm thanh hệ thống trong Java

Lưu ý: tôi biết về java.awt.Toolkit.getDefaultToolkit().beep();

+0

Bạn có ý định phát các giai điệu với Loa PC không? Hoặc chỉ gây ra một tiếng bíp? Tôi không biết làm thế nào bạn chơi giai điệu nhưng tôi chắc chắn muốn biết. – Steven

+0

Tôi biết cách phát các tệp âm thanh, tôi muốn biết cách truy cập giao diện mặc định của hệ điều hành là – Supuhstar

Trả lời

15

Đây ya đi (dành riêng cho cửa sổ :)

final Runnable runnable = 
    (Runnable) Toolkit.getDefaultToolkit().getDesktopProperty("win.sound.exclamation"); 
if (runnable != null) runnable.run(); 

Hơn nữa âm thanh cho Windows (tất cả các trang chứa nội dung giống nhau): Java 6, Java 7, Java 8. (Chúc may mắn tìm một số hệ điều hành khác!)

3

tôi giả sử bạn đang nói về các cửa sổ hệ thống âm thanh? Mac của tôi không có tiếng ồn "nghiêm trọng dừng". ;-)

Bạn sẽ cần tìm đường dẫn hệ thống tệp thích hợp cho các tệp âm thanh đó. Tôi cho rằng họ là những file wav nên một cái gì đó như thế này nên làm việc:

new JavaSoundAudioClip(new FileInputStream(new File("/tmp/go.wav"))).play(); 

Các tập tin có thể có một con đường như:

C:\WINDOWS\MEDIA\Microsoft Office 2000\EXPLODE.WAV 

Chú ý: Đây sẽ trở lại ngay lập tức mặc dù âm thanh đã được "xếp hàng" vào thiết bị âm thanh. Bạn có thể gọi số stop() nếu bạn cần dừng lại.

Nếu bạn cần làm điều gì đó đặc biệt hơn, hãy xem this Java forum. Dưới đây là một số tài liệu hướng dẫn cách sử dụng số audio system more directly.

+0

Tôi đã hy vọng cách tiếp cận phổ quát/đa nền tảng – Supuhstar

+0

Ồ, sau đó tìm tệp âm thanh ở đâu đó và đưa chúng vào bình/chiến tranh. Mỗi hệ điều hành có âm thanh rất khác nhau (hoặc không có) và Java không, theo như tôi biết, cung cấp một cơ chế tiêu chuẩn để kích hoạt chúng. – Gray

+0

@Supuhstar Tôi cũng vậy, có lẽ tôi sẽ cung cấp hiệu ứng âm thanh của riêng mình. – jamie

Các vấn đề liên quan