2012-08-09 7 views
8

Powracam z jeszcze jednym pytaniem dotyczącym BASS. Już napisałem to pytanie: How Can we control bass of music in iPhone, ale nie zwracaj na ciebie uwagi tak bardzo, jak powinno. Ale teraz zrobiłem trochę więcej wyszukiwania i przeczytałem Core AUDIO. Mam jeden przykładowy kod, który chcę Ci udostępnić, tutaj jest link do pobrania go: iPhoneMixerEqGraphTest. Spójrz na to w tym kodzie, co zobaczyłem to, że deweloper użył zaprogramowanego korektora podanego przez iPoda w Apple. Pozwala zobaczyć jakiś fragment kodu zbyt: ----Jak używać kAudioUnitSubType_LowShelfFilter elementu kAudioUnitType_Effect, który steruje basem w rdzeniu Audio?

// iPodEQ unit 
CAComponentDescription eq_desc(kAudioUnitType_Effect, kAudioUnitSubType_AUiPodEQ, kAudioUnitManufacturer_Apple); 

Co kAudioUnitSubType_AUiPodEQ robi to uzyskać wartości zadanych z korektora iPoda i wrócić do nas w Xcode w tablicy, które możemy wykorzystać w PickerView/Tableview i można ustawić dowolną kategorię jak bas, rock, Dance itd. Jest bezradny, ponieważ zwraca tylko nazwy rodzajów korektora, takich jak bas, rock, Dance itd., ponieważ chcę zaimplementować tylko bas i chcę go zaimplementować na UISLider.

Aby zaimplementować Bass na suwaku, potrzebuję wartości, aby ustawić minimalną i maksymalną wartość, aby można było zmieniać ruchy suwaka basów.

Po zdobyciu tego wszystkiego i rozpocząć czytanie klasy Core Audio za RADIOODTWARZACZA ramowych i dostał ten Ipod Desc Image Potem rozpocząć wyszukiwanie kontrolą basu i dostał ten

enter image description here

Więc teraz muszę wdrożyć ten kAudioUnitSubType_LowShelfFilter. Ale teraz nie wiem, jak zaimplementować to wyliczenie w moim kodzie, aby móc kontrolować bas jako dokumentację pisaną. Nawet Apple nie napisał tego, jak możemy z niego korzystać. kAudioUnitSubType_AUiPodEQ ta kategoria zwróciła nam tablicę, ale kategoria kAudioUnitSubType_LowShelfFilter nie zwraca żadnej tablicy. Podczas korzystania z tej kategorii możemy używać typów korektora z tablicy, ale w jaki sposób możemy użyć tej kategorii? kAudioUnitSubType_LowShelfFilter. Czy ktokolwiek może mi pomóc w związku z tym w jakikolwiek sposób? Byłoby to bardzo znaczące.

Dzięki.

Odpowiedz

3

Aktualizacja

Mimo to zadeklarowane w nagłówkach iOS, Low Shelf AU w rzeczywistości nie jest dostępna na iOS.


Parametry półki niskiej różnią się od korektora odtwarzacza iPod.

Parametry są zgłoszone i udokumentowane w `AudioUnit/AudioUnitParameters.h ':

// Parameters for the AULowShelfFilter unit 
enum { 
    // Global, Hz, 10->200, 80 
    kAULowShelfParam_CutoffFrequency = 0, 

    // Global, dB, -40->40, 0 
    kAULowShelfParam_Gain = 1 
}; 

Więc po niskiej półce AU jest tworzony, należy skonfigurować jego parametry używając AudioUnitSetParameter.

Niektóre początkowe wartości parametrów, które możesz wypróbować, to 120 Hz (kAULowShelfParam_CutoffFrequency) i +6 dB (kAULowShelfParam_Gain) - zakładając, że twój system dobrze odtwarza bas, twoja zawartość niskiej częstotliwości powinna być dwa razy głośniejsza.


Czy u powiedz mi jak mogę używać tego kAULowShelfParam_CutoffFrequency zmienić częstotliwość.

Jeśli wszystko jest skonfigurowane w porządku, to powinno być wszystko, co jest potrzebne:

assert(lowShelfAU); 
const float frequencyInHz = 120.0f; 
OSStatus result = AudioUnitSetParameter(lowShelfAU, 
             kAULowShelfParam_CutoffFrequency, 
             kAudioUnitScope_Global, 
             0, 
             frequencyInHz, 
             0); 
if (noErr != result) { 
    assert(0 && "error!"); 
    return ...; 
} 
+0

dzięki za odpowiedź Justin. Czy możesz mi powiedzieć, jak mogę użyć tej kAULowShelfParam_CutoffFrequency do zmiany częstotliwości. Próbuję to zmienić, ale kiedy zmieniam wartość, to się zawiesza. Proszę pomóż!!! –

+0

@NikhilBansal patrz aktualizacja. – justin

+0

OK dziękuję za odpowiedź, pozwól mi sprawdzić, czy to działa dla mnie czy nie –

Powiązane problemy