Ich will rufen 20 mal pro Sekunde die installTapOnBus:Puffergröße:format:block:

Ich will Wellenform-Anzeige in Echtzeit-Eingabe aus dem Mikrofon.
Ich habe realisiert installTapOnBus:Puffergröße:format:block: Diese Funktion wird aufgerufen, drei mal in einer Sekunde.
Ich möchte, um diese Funktion aufgerufen werden 20-mal pro Sekunde.
Wo kann ich das einstellen?

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

NSError* error = nil;
if (audioSession.isInputAvailable) [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
if(error){
    return;
}

[audioSession setActive:YES error:&error];
if(error){
    retur;
}

self.engine = [[[AVAudioEngine alloc] init] autorelease];

AVAudioMixerNode* mixer = [self.engine mainMixerNode];
AVAudioInputNode* input = [self.engine inputNode];
[self.engine connect:input to:mixer format:[input inputFormatForBus:0]];

//tap ... 1 call in 16537Frames
//It does not change even if you change the bufferSize
[input installTapOnBus:0 bufferSize:4096 format:[input inputFormatForBus:0] block:^(AVAudioPCMBuffer* buffer, AVAudioTime* when) {

    for (UInt32 i = 0; i < buffer.audioBufferList->mNumberBuffers; i++) {
        Float32 *data = buffer.audioBufferList->mBuffers[i].mData;
        UInt32 frames = buffer.audioBufferList->mBuffers[i].mDataByteSize / sizeof(Float32);

        //create waveform
        ...
    }
}];

[self.engine startAndReturnError:&error];
if (error) {
    return;
}
InformationsquelleAutor Melodybox | 2014-09-30
Schreibe einen Kommentar