2012-02-06 28 views
5

Khi Trình tìm kiếm hoàn tất việc sao chép các tệp, nó sẽ kích hoạt cảnh báo âm thanh. Làm thế nào tôi có thể làm điều đó từ ứng dụng của tôi?Làm cách nào để kích hoạt cảnh báo âm thanh trong OSX bằng Cocoa?

Xin lưu ý rằng nó không giống như chỉ đơn thuần là phát âm thanh. Tôi đến từ nền Windows vì vậy tôi giả định rằng OSX cho phép người dùng cấu hình âm thanh thông báo từ một số vị trí trung tâm. Vì vậy, nếu người dùng chọn âm thanh khác cho một sự kiện thì API đó sẽ phát âm thanh mới đó. Bằng cách này tôi có thể làm cho ứng dụng của tôi gel vào hệ thống và nó sẽ có thể cảnh báo người dùng bằng cách sử dụng âm thanh mà người dùng quen thuộc với.

Trả lời

5

Trả lời câu hỏi của riêng tôi.

Cập nhật

Ghi chú thêm

Các cảnh báo hệ thống là những người mà người dùng có thể cấu hình, những người khác như đổ thùng rác, âm thanh được thực hiện khi sao chép file thì không.

NSBeep là cách đơn giản nhất để kích hoạt âm thanh cảnh báo thông báo cho người dùng về lỗi. Các âm thanh khác có sẵn tại các địa điểm sau trong Lion.

  • /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds
  • Đối với giao diện người dùng khác âm thanh kiểm tra thư mục Resources dưới gói liên quan đến các ứng dụng cốt lõi. Các gói ứng dụng này có thể được tìm thấy trong /System/Library/CoreServices/.

Vì vậy, ví dụ: nếu bạn muốn phát chuyển sang âm thanh thùng rác, hãy sử dụng mã sau.

NSSound *systemSound = [[NSSound alloc] initWithContentsOfFile:@"/System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds/dock/drag to trash.aif" byReference:YES]; 
if (systemSound) { 
    [systemSound play]; 
} 

Hãy cẩn thận

Các tên và đường dẫn của file âm thanh có thể thay đổi bất cứ lúc nào. Trên thực tế, vị trí của SystemSounds trước Lion là /System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds.

1
NSSound(named: "Funk")?.play() 
Các vấn đề liên quan