2008-11-06 31 views
18

Tôi muốn cảnh báo người dùng trong ứng dụng Swing của một số sự kiện nhất định với PC cũ Loa bíp, vì không phải trên mọi PC có soundcard với loa kèm theo. (Ít nhất là trên máy tính công việc của tôi không có loa, với một lý do. :-) Làm thế nào tôi có thể làm điều này?Làm thế nào để tạo tiếng ồn trên loa PC với Java

CẬP NHẬT: java.awt.Toolkit.getDefaultToolkit(). Beep() dường như thường tạo ra âm thanh trên soundcard. Nó chỉ sử dụng loa nếu không có soundcard hoạt động. Để in một giá trị ASCII 7 chỉ hoạt động nếu ứng dụng được khởi chạy trong một thiết bị đầu cuối, mà ít nhất một ứng dụng Swing thường không phải là. Vì vậy, câu hỏi vẫn mở.

+2

Chỉ cần lưu ý, tôi có một PC mới không có loa bên trong. –

+0

@ Jonathan S. - Tôi không biết những thứ như vậy tồn tại. Nó là một máy tính xách tay? –

+0

Nếu bạn xây dựng của riêng bạn, bạn rõ ràng là không thể kết nối loa, nhưng tôi không biết bất kỳ điều gì không đi kèm với loa.Chúng rất cần thiết để gỡ lỗi các vấn đề bo mạch chủ (mã bíp), trong số những thứ khác. – rmeador

Trả lời

20

Toolkit.getDefaultToolkit().beep();

+0

Bíp không hoạt động như người hỏi; nó sử dụng âm thanh lỗi do OS xác định. –

2

Giá trị ASCII 7 là tiếng bíp. Vì vậy, chỉ cần in nhân vật đó.

+0

Điều này có thể hoặc có thể không hoạt động tùy thuộc vào cách ứng dụng được khởi chạy. Nếu nó được đưa ra ngoài một thiết bị đầu cuối bình thường, bản in sẽ không được giải thích bởi vỏ. Giải pháp Mmyers linh hoạt hơn. –

7

Hãy thử điều này:

java.awt.Toolkit.getDefaultToolkit().beep(); 

Nó làm việc cho tôi, mặc dù tôi không chắc chắn cho dù đây là tiếng bíp PC Speaker hoặc một số tiếng bíp OS tạo.

+1

Hoạt động trên OS X, quá. Nó phát âm thanh cảnh báo hệ thống của bạn. –

+0

Tôi khá chắc chắn rằng trên Windows, nếu bạn chưa cài đặt trình điều khiển soundcard/soundcard và điều gì đó xảy ra yêu cầu loại tiếng bíp đó, loa hệ thống phát ra tiếng bíp. –

+0

Bíp không hoạt động như người hỏi; nó sử dụng âm thanh lỗi do OS xác định. –

4

Tôi đọc ở đâu đó rằng bạn cần phải sử dụng một C/C++ dll và kết nối nó với JNI, để làm công việc đó, .. liên kết là ẩn

Ok Tôi tìm thấy những gì bạn đang tìm kiếm

http://pyx4j.com/pyx4j-native/index.html

dự án ông pyx4j bản địa là một tập hợp các giấy gói java cho các cửa sổ chức năng như thời gian và bíp. Bây giờ chỉ hoạt động trên các cửa sổ.

NativeThreadDump - Gửi CtrlBreak tổ chức sự kiện cho quá trình hiện

Beep - Thực hiện một âm thanh sử dụng loa máy tính

FileUtil - Truy cập và sửa đổi thời gian tạo tập tin. Được sử dụng trong com.pyx4j.log.RollingFileAppender

NativeTimer - Hệ thống có độ phân giải cao hiệu suất truy cập sử dụng trước khi Java 5

3

Khác với tiếng bíp âm thanh bạn có thể thử JFugue.

JFugue là một API Java mã nguồn mở để lập trình nhạc mà không có sự phức tạp của MIDI.

+0

Cảm ơn câu trả lời, nhưng JFugue có thể phát ra âm thanh trên Loa PC ngay cả khi có Soundcard không? Nếu không, điều này không trả lời câu hỏi. ;-) –

0
{ 
    If (whatever you named the file) = true 
    Then 
    Process.Start ("C:\Windows\Media\{whatever you named the file}) 
    } 

Tôi sử dụng nó trong C#. Đó là muộn cho tôi mã không chính xác chính xác trước khi mọi người bash bài đăng này. Đặt một thư mục viết để đặt tên cho một thư mục và khai báo nó là vị trí mặc định. Di chuyển âm thanh bạn chọn vào thư mục này và nó sẽ phát âm thanh. Đặt bộ hẹn giờ trong Java để lặp lại âm thanh sau mỗi 2 giây để thu hút sự chú ý của mọi người. Hy vọng điều này sẽ giúp ích khi tôi tự học!

+0

Bạn nên ít nhất đề cập đến đó là câu trả lời chỉ dành cho Windows, không phải là câu trả lời chung của Java. –

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