私はAudioRecorderを使用したそのアプリで1つのアプリを開発しています。アプリを閉じてもレコーダーが停止しません。アプリがバックグラウンドのときに赤いステータスバーが表示されます。
このコードを使用しました...
NSArray *pathComponents = [NSArray arrayWithObjects:
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject],
@"MyAudioMemo.m4a",
nil];
NSURL *outputFileURL = [NSURL fileURLWithPathComponents:pathComponents];
// Setup audio session
AVAudioSession *session = [AVAudioSession sharedInstance];
//[session setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[session setCategory:AVAudioSessionCategoryRecord error:nil];
// Define the recorder setting
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
// Initiate and prepare the recorder
delegate.recorder = [[AVAudioRecorder alloc] initWithURL:outputFileURL settings:recordSetting error:nil];
delegate.recorder.delegate=self;
delegate.recorder.meteringEnabled = YES;
[delegate.recorder prepareToRecord];
//[recorder record]; // Do not start recording here
[delegate.recorder updateMeters];
level = [delegate.recorder peakPowerForChannel:0];
//AVAudioSession *audioSession = [AVAudioSession sharedInstance];
//[audioSession setActive:NO error:nil];
timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self
selector:@selector(updateAudioMeter)
userInfo:nil
repeats:YES];
-(void)updateAudioMeter
{
AppDelegate * delegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];
[delegate.recorder updateMeters];
level = [delegate.recorder averagePowerForChannel:0];
NSLog(@"%f",level);
if(level<=-120)
{
[delegate.recorder record];
}
else
{
[delegate.recorder stop];
}
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[recorder stop];
}
しかし、アプリを閉じると、赤いステータスバーが表示され、iPhone5 が記録を停止しないことを意味します。どこが間違っているのでしょうか、これを解決するのを手伝ってください。