2014-09-04 2 views
0

Мне нужно передать звук в localNotification. Я знаю, что это ограничения и требуемый формат. Но способ добавления его - просто получить его из имени файла. UILocalNotification имеет просто свойство SoundName, где он получает звук только его имя на App Bundle.Установите собственный звук для localNotification из NSData

Я установил SQLite База данных, когда я сохраняю звуки в формате blob и вернусь к NSData. Мне нужно установить этот звук, который у меня есть, и указать его как параметр localNotification в формате NSData.

Вот как я создал localNotification

UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"HH-mm"; 
NSDate* date = [dateFormatter dateFromString:[dateFormatter stringFromDate:timeToSetOff.date]]; 

localNotification.soundName = @""; //Here is the line where I am having issues 

[localNotification setFireDate:date]; 
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 

Кто-нибудь занимался этим раньше, или реализован этот алгоритм?

+0

Это невозможно, только звуки, которые есть в приложении Bundle, могут воспроизводиться. Невозможно воспроизвести звук, не входя в App Bundle. – rckoenes

+0

@rckoenes (я использую это для приложения для сигнализации). На переднем плане я могу сделать это с помощью AVAudioPlayer initWithContents, но проблема, когда я устанавливаю звук localNotification, мне нужно имя. – EridB

+0

@ EridBardhaj вы просто хотите сыграть звук? – sanjeet

ответ

1

Свойство soundName принимает только имя файла звука в вашем приложении сек расслоения. Поэтому, когда приложение работает на переднем плане, вы сможете воспроизводить звук с помощью AVplayer или что-то в этом роде. Вы не можете использовать soundName для сохранения имени. Кроме того, сохранение звука по мере того, как blobs усложнит работу, просто сохраните файл в каталоге документов и путь к этому файлу в базе данных SQLite.

Затем вы передаете путь к звуковому файлу в userInfoUILocalNotification.

2

огнь этого метод, когда вы получите уведомление

-(void) playSound { 
NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"soundfile" ofType:@"caf"]; 
SystemSoundID soundID; 
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath: soundPath], &soundID); 
AudioServicesPlaySystemSound (soundID); } 
+0

Я знаю, как воспроизводить звук на переднем плане, но мне нужен звук для UILocalNotification, поэтому он может воспроизводиться также, когда мы идем на фоне или неактивном состоянии – EridB

Смежные вопросы