UILocalNotification воспроизведение звука из документов приложения

#ios #objective-c #cocoa-touch #uilocalnotification

#iOS #objective-c #cocoa-touch #uilocalnotification

Вопрос:

Я знаю, что UILocalNotification это поддерживается soundName только из пакета приложений, но я видел программу, которая воспроизводит мой записанный звук в уведомлении, даже если программа закрыта. Как это реализовать? Любые идеи очень важны для меня..

Комментарии:

1. Метод ../Documents/sound.caf раньше работал, но я думаю, что он может быть поврежден в бета-версии iOS 6. Могут ли какие-либо другие разработчики подтвердить? Я бы оставил это в качестве комментария, если бы мог.

2. Возникли те же проблемы, смогли ли вы решить эту проблему? Я знаю, что этой теме уже пару лет, но, возможно, вы можете предложить некоторое представление. Спасибо!

Ответ №1:

Верный способ получить NSURL доступ к каталогу документов приложения выглядит следующим образом…

 NSURL *documentsDirectoryURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
 

Затем вы можете получить NSURL ссылку на ваш звуковой файл следующим образом…

 NSURL *soundURL = [documentsDirectoryURL URLByAppendingPathComponent:@"sound.caf"];
 

Если вам нужно строковое представление пути к ресурсу по этому URL-адресу, вы можете получить его следующим образом…

 NSString *pathRepresentation = [soundURL absoluteString];
 

Комментарии:

1. Привет, Марк, я пробовал это, но это не сработало в моем приложении? Я записал файл .m4a в каталоге документов. Есть ли какие-либо другие вещи, о которых нужно позаботиться?

2. Привет, @Meghan, если я правильно помню, файл должен быть .caf для воспроизведения в виде короткого звука. Вот еще немного информации о преобразовании аудиофайлов для использования на iOS. gamua.com/blog/2010/06/sound-on-ios-best-practices

3. Я протестировал пакет файлов m4a, но моя проблема в том, что у меня есть файл в каталоге documents, и я хочу установить его в качестве звука UILocalNotification.

Ответ №2:

Я проверил работу следующего метода на ios 5.0.1:

просто настройте относительный путь следующим образом

 notify.soundName = @"../Documents/blabla.caf"