當Finder完成文件複製時,它會觸發聲音警報。我怎麼能從我的應用程序做到這一點?如何在使用Cocoa的OSX中觸發聲音警報?
請注意,它不是簡單地播放聲音。我來自Windows背景,所以我假定OSX允許用戶從一些中央位置配置通知聲音。所以,如果用戶爲某個事件選擇了不同的聲音,那麼該API應播放該新聲音。這樣我就可以將我的應用程序凝膠化到系統中,並且能夠使用用戶熟悉的聲音提醒用戶。
當Finder完成文件複製時,它會觸發聲音警報。我怎麼能從我的應用程序做到這一點?如何在使用Cocoa的OSX中觸發聲音警報?
請注意,它不是簡單地播放聲音。我來自Windows背景,所以我假定OSX允許用戶從一些中央位置配置通知聲音。所以,如果用戶爲某個事件選擇了不同的聲音,那麼該API應播放該新聲音。這樣我就可以將我的應用程序凝膠化到系統中,並且能夠使用用戶熟悉的聲音提醒用戶。
回答我自己的問題。
更新
其他注意事項
系統警報是哪個用戶可配置的,其他人一樣清空回收站,複製文件不健全時發。
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
。
NSSound(named: "Funk")?.play()