iOS でサウンドを録音する方法を説明しましたが、アプリのパフォーマンスが低下します。新しいスレッドでサウンドを録音することは可能ですか? どうやって?
質問する
1130 次
1 に答える
2
オーディオ録音はハードウェア コーデックによって直接処理されるため、CPU ベースのアクティビティには影響しません。スレに立てても変わらない
アプリのプロファイルを作成して、速度低下の原因を突き止めましたか。たとえば、複雑なマイク入力レベル表示を使用していて、そこでメイン スレッドをブロックしていませんか。
録音オプションを見て、これがパフォーマンスに影響しているかどうかを確認してください
これは、アプリでの同時描画と記録に使用するセットアップです。CPUの犬がいるiPad1で問題なく動作します
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error: &setCategoryError];
if (setCategoryError){
NSLog(@"Error setting category! %@", [setCategoryError localizedDescription]);
return NO;
}
NSError *error = NULL;
NSMutableDictionary *options = [NSMutableDictionary dictionaryWithCapacity:5];
[options setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey]; //format
[options setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; //sample rate
[options setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey]; //channels
//encoder
[options setValue:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey]; //channels
[options setValue:[NSNumber numberWithInt:16] forKey:AVEncoderBitDepthHintKey]; //channels
self.audiorecorder = [[AVAudioRecorder alloc] initWithURL:mediaURL settings:options error:&error];
self.audiorecorder.meteringEnabled = YES;
録音自体が描画の速度を低下させることに懐疑的です。
于 2012-09-13T07:43:52.473 に答える