Как мне запустить звуковое оповещение в OSX, используя Какао? - PullRequest
5 голосов
/ 06 февраля 2012

Когда Finder заканчивает копирование файлов, он запускает звуковое оповещение.Как я могу сделать это из моего приложения?

Обратите внимание, что это не то же самое, что просто воспроизведение звука.Я из Windows, поэтому я предполагаю, что OSX позволяет пользователям настраивать звук уведомлений из какого-то центрального места.Таким образом, если пользователь выбирает другой звук для события, тогда этот API должен воспроизводить этот новый звук.Таким образом, я могу превратить свое приложение в систему, и оно сможет предупреждать пользователя с помощью звука, с которым он знаком.

Ответы [ 3 ]

6 голосов
/ 06 февраля 2012

Отвечая на мой вопрос.

Обновление

Дополнительные примечания

Системные оповещения - это те, которые пользователь может настраивать, например, очистка корзины, звук, воспроизводимый при копировании файлов, - нет.

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];
}

Предостережения

Имя и путь к звуковым файлам могут измениться в любое время. На самом деле местоположение SystemSounds до Льва было /System/Library/Components/CoreAudio.component/Contents/Resources/SystemSounds.

4 голосов
/ 01 февраля 2013

Вы также должны проверить это руководство http://cocoathings.blogspot.com/2013/01/playing-system-sounds.html

2 голосов
/ 29 октября 2015
NSSound(named: "Funk")?.play()
...