Как я могу использовать звуковой файл, присутствующий в каталоге документов, для локального уведомления? - PullRequest
1 голос
/ 16 августа 2011

В моем приложении iOS, как я могу воспроизвести звуковой файл, хранящийся в каталоге документов приложения для локального уведомления, а не один внутри пакета приложения?

Я видел пару приложений в App Store, которые делали это, и мне было интересно, как это возможно.

Ответы [ 3 ]

3 голосов
/ 12 сентября 2016

На самом деле можно воспроизводить пользовательский звук в локальном уведомлении, которого нет в основном комплекте приложения (NSBundle).

Звук должен храниться в каталоге Library/Sounds, например: /var/mobile/Containers/Data/Application/DD7E6BA0-2FC0-4DE0-95BF-C2E9C9A94E08/Library/Sounds/mySound.caf

Когда вы ссылаетесь на звуковой файл в свойстве UILocalNotification soundName, вы просто пишете имя файла, а не полный путь к каталогу:

alert.soundName = @"mySound.caf";

Протестировано и работает на iOS9.3.5. Я еще не пробовал на других версиях iOS.

Сноска:

Мне довелось найти эту информацию при поиске в документации Apple, касающейся удаленных уведомлений Здесь - В частности, в разделе «Ключи полезной нагрузки», где упоминается звук.

В документации Apple для локальных и удаленных уведомлений ( Здесь ) также упоминается, что звуковые файлы можно использовать, если они находятся в основном комплекте приложения ИЛИ в контейнере данных:

Чтобы воспроизвести звук, назначьте звук свойству soundName. Вы можете назначить имя файла нелокализованного пользовательского звука в основном комплекте приложения (или контейнере данных) или назначить UILocalNotificationDefaultSoundName, чтобы получить системный звук по умолчанию. Звук всегда должен сопровождать отображение предупреждающего сообщения или значок значка; звук не должен воспроизводиться при отсутствии других типов уведомлений.

0 голосов
/ 23 декабря 2011

Точно .....

    You can not play audio file stored in document directory for alarm as a local push notification.

Я также просматривал различные приложения в магазине приложений. Эти приложения в основном похожи на воспроизведение, настраивают звук из каталога документов для локальных push-уведомлений, но это не вставляется с помощью push-уведомлений и когда уведомление приходит в то время, когда мы нажимаем на кнопка просмотра этого уведомления, приложение, которое сгенерировало локальное push-уведомление, будет вызвано и, наконец, выбранный аудиофайл будет воспроизведен.

Таким образом, приложение выглядит как настраиваемое push-уведомление с использованием настроенного аудиофайла из каталога документов

0 голосов
/ 31 октября 2011

Нет, вы не можете воспроизводить аудиофайл, которого нет в комплекте, и вы не можете изменять пакет приложений во время выполнения. Одной из причин, по которой Apple требует, чтобы все звуки для локальных уведомлений были связаны с приложением, могут быть соображения безопасности, которые позволят проверять все связанные файлы на наличие угроз безопасности в процессе проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...