Cocoaを使用してOSXでサウンドアラートを発生させるにはどうすればよいですか?

Finderでファイルのコピーが完了すると、警告音が鳴ります。私はどのように私のアプリからそれを行うことができますか?

単に音を鳴らすのと同じではないことに注意してください。私はWindowsのバックグラウンドから来たので、OSXではユーザーが中央の場所から通知音を設定できると仮定しています。したがって、ユーザーがイベントに対して異なるサウンドを選択した場合、そのAPIはその新しいサウンドを再生する必要があります。こうすることで、自分のアプリをシステムに組み込むことができ、ユーザーによく知られているサウンドを使ってユーザーに警告することができます。

5

3 答え

自分の質問に答える。

更新

Additional notes

システム警告は、ユーザーが設定できるもの、ごみ箱を空にするもの、ファイルをコピーしたときの音などではありません。

NSBeep is the simplest way to trigger the alert sound which notifies the user of an error. Other sounds are available at the following locations in 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];
}

Caveats

サウンドファイルの名前とパスは、いつでも変更できます。実際、Lionの前に SystemSounds の場所は /System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds でした。

5
追加された
4
追加された
NSSound(named: "Funk")?.play()
2
追加された