0
아이폰 마이크에서 소리가 나면 대리자 메서드를 호출하고 싶다. 호출되지 않은 레코더 대리자를 호출하십시오. 나는 소리의 강도를 얻고 싶다.마이크가 소리가 나지 않는다.
이 코드를 사용해 보았습니다. 그러나 일하지 않습니다.
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];
// 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
recorder = [[AVAudioRecorder alloc] initWithURL:outputFileURL settings:recordSetting error:nil];
recorder.delegate = self;
recorder.meteringEnabled = YES;
[recorder prepareToRecord];
[recorder record];
[recorder updateMeters];
level = [recorder peakPowerForChannel:0];
[recorder stop];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setActive:NO error:nil];
// Do any additional setup after loading the view, typically from a nib.
}
// 사용자가 사운드를 얻을 때 호출이 방법 ....... 내가 사전에이 감사를 할 수있는 방법
-(void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag
{
NSLog(@"Sound level is %f",level);
}
.
가져옵니다. – Jitendra
예, 알겠습니다. 그것의 동일한 해결책. updateAudioMeter는 사운드 레벨을 확인하고 여기에 -25 인 임계 값을 초과하여 증가하면 레코더가 레코딩을 시작합니다. 레코더를 시작하고 멈추는 데 더 높은 값과 낮은 값을 추가 할 수 있습니다 –
아니요 마이크 근처에서 사용자가 박수를 치를 때만 전화하고 싶습니다. – Jitendra