2012-02-06 64 views
5

當Finder完成文件複製時,它會觸發聲音警報。我怎麼能從我的應用程序做到這一點?如何在使用Cocoa的OSX中觸發聲音警報?

請注意,它不是簡單地播放聲音。我來自Windows背景,所以我假定OSX允許用戶從一些中央位置配置通知聲音。所以,如果用戶爲某個事件選擇了不同的聲音,那麼該API應播放該新聲音。這樣我就可以將我的應用程序凝膠化到系統中,並且能夠使用用戶熟悉的聲音提醒用戶。

回答

5

回答我自己的問題。

更新

其他注意事項

系統警報是哪個用戶可配置的,其他人一樣清空回收站,複製文件不健全時發。

NSBeep是觸發警告聲音的最簡單方法,它通知用戶錯誤。其他聲音在Lion的以下位置可用。

  • /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds
  • 對於其它用戶界面聽起來檢查下的核心應用程序的相關包的Resources文件夾。這些應用程序包可以在/System/Library/CoreServices/中找到。

因此,例如,如果要播放回收站聲音,請使用以下代碼。

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

注意事項

的名稱和聲音文件的路徑可能會隨時改變。實際上在Lion之前SystemSounds的位置是/System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds

1
NSSound(named: "Funk")?.play() 
相關問題