我能够使用avrecorder录制语音,但是它将录制的语音保存在文档目录的路径中,我无法找到在localNotification声音中使用它的方法,所以任何一个plz都能解释这个问题
录制代码: -
-(IBAction)startRecording
{
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;
[audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [searchPaths objectAtIndex:0];
NSLog(@"ccc...%@",documentPath);
if(toggle)
{
toggle = NO;
recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey];
strRecordedVoice=[NSString stringWithFormat: @"%.0f.%@", [NSDate timeIntervalSinceReferenceDate] * 1000.0, @"caf"];
recordedTmpFile = [NSURL fileURLWithPath:[documentPath stringByAppendingPathComponent:strRecordedVoice]];
NSLog(@"Using Filepath called: %@",recordedTmpFile);
NSLog(@"Using str: %@",strRecordedVoice);
recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:&error];
[recorder setDelegate:self];
[recorder prepareToRecord];
[recorder record];
progressView.progress = 0.0;
[recorder recordForDuration:(NSTimeInterval) 2];
lblStatusMsg.text = @"Recording...";
progressView.progress = 0.0;
timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(handleTimer) userInfo:nil repeats:YES];
}
else
{
toggle = YES;
//Stop the recorder.
[recorder stop];
}
}
//本地通知代码
-(void) scheduleLocalNotificationWithDate:(NSDate *)fireDate
{
UILocalNotification *notification =[[UILocalNotification alloc]init];
notification.fireDate=fireDate;
notification.repeatInterval = 0;
notification.alertAction = NSLocalizedString(@"View", @"View");
notification.soundName = UILocalNotificationDefaultSoundName;
NSDictionary *userDict = [NSDictionary dictionaryWithObject:ap.strAlarmTitle
forKey:kRemindMeNotificationDataKey];
notification.userInfo = userDict;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
[notification release];
}
Reference:-you can see it its an alarm application which uses uilocalnotification
itunes.apple.com/us/app/record-alarm-free/id418511936?mt=8
答案 0 :(得分:4)
您只能使用应用套装中的声音进行本地通知
答案 1 :(得分:2)
正如Martin所说,您只能使用应用程序包中的声音文件。您提到的应用程序"记录无警报"也不能播放录制的声音作为通知声音(我已经测试过)。
您可以执行的操作是在从本地通知打开应用程序后播放声音。
您需要在didReceiveLocalNotification
和 didFinishLaunchingWithOptions
中实现此目的:
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
[self playSoundWithNotification:notification];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (notification)
{
[self playSoundWithNotification:notification];
}
}
答案 2 :(得分:0)
[NSLocalNotification * obj PlaySound];