1

iOS でサウンドを録音する方法を説明しましたが、アプリのパフォーマンスが低下します。新しいスレッドでサウンドを録音することは可能ですか? どうやって?

4

1 に答える 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 に答える