2012-02-06 13 views
5

Po zakończeniu kopiowania plików Finder wyzwala alarm dźwiękowy. Jak mogę to zrobić z mojej aplikacji?Jak wyzwalać alarm dźwiękowy w OSX przy użyciu Cocoa?

Należy pamiętać, że to nie to samo, co po prostu odtwarzanie dźwięku. Pochodzę z systemu Windows, więc zakładam, że OSX pozwala użytkownikom konfigurować dźwięk powiadomienia z centralnej lokalizacji. Jeśli więc użytkownik wybierze inny dźwięk zdarzenia, to interfejs API powinien odtworzyć ten nowy dźwięk. W ten sposób mogę wprowadzić żelu do aplikacji do systemu i powiadomić użytkownika za pomocą dźwięku, który zna użytkownik.

Odpowiedz

5

Odpowiadając na moje własne pytanie.

Aktualizacja

Dodatkowe noty

Alarmy systemowe są te, które użytkownik może skonfigurować, inni opróżniania kosza, dźwięk wykonane podczas kopiowania plików nie są.

NSBeep to najprostszy sposób wyzwalania dźwięku alarmu, który informuje użytkownika o błędzie. Inne dźwięki są dostępne w następujących lokalizacjach w Lion.

  • /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds
  • Dla innego interfejsu użytkownika brzmi sprawdzić folder Resources pod związanych pakietów podstawowych aplikacji. Te pakiety aplikacji można znaleźć w /System/Library/CoreServices/.

Tak więc, na przykład, jeśli chcesz odtwarzać ruch do kosza, użyj poniższego kodu.

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

Ostrzeżenia

nazwę i ścieżkę plików dźwiękowych może się zmienić w każdej chwili. W rzeczywistości lokalizacja SystemSounds przed Lionem była /System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds.

Powiązane problemy