Próbuję użyć filtra dolnoprzepustowego AU. Wciąż otrzymuję błąd kAudioUnitErr_FormatNotSupported (-10868) podczas ustawiania formatu strumienia na jednostkę filtrującą, ale jeśli po prostu używam urządzenia zdalnego IO, nie ma błędu.Jaki format strumienia powinny jednostki efektów iOS5 używać
Format strumień używam jest (Aktualizacja):
myASBD.mSampleRate = hardwareSampleRate;
myASBD.mFormatID = kAudioFormatLinearPCM;
myASBD.mFormatFlags = kAudioFormatFlagIsSignedInteger;
myASBD.mBitsPerChannel = 8 * sizeof(float);
myASBD.mFramesPerPacket = 1;
myASBD.mChannelsPerFrame = 1;
myASBD.mBytesPerPacket = sizeof(float) * myASBD.mFramesPerPacket;
myASBD.mBytesPerFrame = sizeof(float) * myASBD.mChannelsPerFrame;
A ja ustawienie strumienia filtra takiego:
// Sets input stream type to ASBD
setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &myASBD, sizeof(myASBD));
NSLog(@"Filter in: %i", setupErr);
//NSAssert(setupErr == noErr, @"No ASBD on Finput");
//Sets output stream type to ASBD
setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 0, &myASBD, sizeof(myASBD));
NSLog(@"Filter out: %i", setupErr);
NSAssert(setupErr == noErr, @"No ASBD on Foutput");
Próbowałem za pomocą 32 kanałów bitowe i wciąż pojawiają się błędy format strumienia. Powiedziano mi gdzie indziej, że wbudowane efekty AU w iOS5 również nie używają formatu kanonicznego. Próbowałem pobrać format strumienia z jednostki filtrującej za pomocą AudioUnitGetProperty, ale za każdym razem gdy próbuję, pojawia się błąd. Czy lepszym pomysłem byłoby skorzystanie z wywołania renderowania i użycie aktualnego ASBD? –
Czy ustawiłeś typ stały lub pływakowy? To jedna różnica między formatem kanonicznym na Macu i iOS. – hotpaw2
Zmieniliśmy to, więc nie używam float, ale nadal dostaję błąd. Nie jestem pewien, czy ustawiam filtr ASBD poprawnie, bo właśnie tam dostaję błąd. –