2011-10-06 6 views
0

마이크에 평균 전력을 사용하여 게임 응답을 트리거하는 앱을 프로그래밍하려고합니다. 나는 -init에 다음 코드를 사용하고 : 내 방법마이크 입력이 휴대폰이 아닌 시뮬레이터에서 작동 중임

NSURL *url = [NSURL fileURLWithPath:@"/dev/null"]; 

NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat: 44100.0], AVSampleRateKey, [NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,[NSNumber numberWithInt: AVAudioQualityMax],   AVEncoderAudioQualityKey,il]; 

NSError *error; 
recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error]; 
if (recorder) { 
    [recorder prepareToRecord]; 
    recorder.meteringEnabled = YES; 
    [recorder record]; 
    levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.03 target: self selector: @selector(myMethod:) userInfo: nil repeats: YES]; 

이 soundLevel = [레코더 averagePowerForChannel : 0] 부동 ;

트리거링은 시뮬레이터에서 정상적으로 작동하지만 테스트 할 때 내 휴대 전화에 올려 놓으면 작동하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

이 솔루션을 사용하면 마이크가 작동하는 데 도움이되었습니다. http://stackoverflow.com/questions/6350420/how-to-detect-a-blow-in-the-microphone-with-unity-and-ios – user3293557

답변

0

@"/dev/null"이 장치의 유효한 경로인지 확실하지 않습니다. 앱은 샌드 박스 외부에서 읽거나 쓸 수 없으므로 AVAudioRecorder의 인스턴스를 설정하여/dev/null에 기록하는 것은 아마도 작동하지 않을 것입니다.

대신 앱의 문서 폴더에 파일 경로를 지정해보세요.

관련 문제