将声音设置为通知声音(无解)?

时间:2013-08-06 23:26:59

标签: ios notifications audio

我的项目中有三个声音:

}    - (IBAction)Sound1:(NSDate *)fireDate;

{

  [[NSUserDefaults standardUserDefaults] setObject:@"Sound1.aiff" forKey:@"UserSoundChoice"];
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
[localNotification setFireDate:[NSDate date]];
[localNotification setTimeZone:[NSTimeZone defaultTimeZone]];
[localNotification setAlertBody:@"Alarm went off!"];   
[localNotification setAlertAction:@"View"]; 
[localNotification setHasAction:YES]; 
localNotification.soundName= [[NSUserDefaults standardUserDefaults] objectForKey:@"UserSoundChoice"]; 
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 
}
- (IBAction)Sound2:(NSDate *) fireDate;
{
  [[NSUserDefaults standardUserDefaults] setObject:@"Sound2.aiff" forKey:@"UserSoundChoice"];
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
[localNotification setFireDate:[NSDate date]];
[localNotification setTimeZone:[NSTimeZone defaultTimeZone]];
[localNotification setAlertBody:@"Alarm went off!"];   
[localNotification setAlertAction:@"View"]; 
[localNotification setHasAction:YES]; 
localNotification.soundName= [[NSUserDefaults standardUserDefaults] objectForKey:@"UserSoundChoice"]; 
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 
}
- (IBAction)Sound3:(NSDate *) fireDate;
{
       [[NSUserDefaults standardUserDefaults] setObject:@"Sound3.aiff" forKey:@"UserSoundChoice"];
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
[localNotification setFireDate:[NSDate date]];
[localNotification setTimeZone:[NSTimeZone defaultTimeZone]];
[localNotification setAlertBody:@"Alarm went off!"];   
[localNotification setAlertAction:@"View"]; 
[localNotification setHasAction:YES]; 
localNotification.soundName= [[NSUserDefaults standardUserDefaults] objectForKey:@"UserSoundChoice"]; 
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}
- (IBAction)SetDatePicker
{

NSDateFormatter *dateFormatter =[ [NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone defaultTimeZone];
dateFormatter.timeStyle = NSDateFormatterShortStyle;
dateFormatter.dateStyle = NSDateFormatterShortStyle;

NSString *dateTimeString = [dateFormatter stringFromDate: dateTimePicker.date];
NSLog (@"Alarm saved: %@", dateTimeString);

[self Sound1:dateTimePicker.date];
[self Sound2:dateTimePicker.date];
[self Sound3:dateTimePicker.date];

}

-(void)scheduleLocalNotificationWithDate:(NSDate *)fireDate   

{
   UILocalNotification * notifiction = [[UILocalNotification alloc] init];

   notifiction.FireDate = fireDate; 

   notifiction.AlertBody = @"Wake Up!!!";    

  notifiction.soundName =UILocalNotificationDefaultSoundName;   

  notifiction.repeatInterval= NSMinuteCalendarUnit;   

[[UIApplication sharedApplication] scheduleLocalNotification: notifiction];

}

我想让用户选择其中一个将其设置为通知声音 我一直在搜索,但我找不到任何帮助我的解决方案

1 个答案:

答案 0 :(得分:1)

您可以为本地和推送通知指定音频文件。允许用户选择他们想要的文件作为警报声音。在NSUserDefaults中保存该首选项,然后使用声音创建UILocalNotification。

示例:

您需要在Xcode项目中包含3个声音文件(例如Sound1.aiff,Sound2.aiff和Sound3.aiff)。

- (IBAction)Sound1
{
    [[NSUserDefaults standardUserDefaults] setObject:@"Sound1.aiff" forKey:@"UserSoundChoice"];
    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    [localNotification setFireDate:[NSDate date]];
    [localNotification setTimeZone:[NSTimeZone defaultTimeZone]];
    [localNotification setAlertBody:@"Alarm went off!"];   
    [localNotification setAlertAction:@"View"]; 
    [localNotification setHasAction:YES]; 
    localNotification.soundName= [[NSUserDefaults standardUserDefaults] objectForKey:@"UserSoundChoice"]; 
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 
}

来源: Limits on iPhone push notification sounds?

UILocalNotifications playing Custom sound

https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/WhatAreRemoteNotif.html#//apple_ref/doc/uid/TP40008194-CH102-SW1