2009-10-23 21 views
6

W mojej aplikacji nagrywam i odtwarzam dźwięk w tym samym czasie. Aplikacja jest prawie ukończona. Ale jest jedna rzecz, która mnie denerwuje. Gdy sesja audio jest ustawiona na PlayAndRecord, dźwięki stają się ciche w porównaniu z tymi samymi dźwiękami w kategorii SoloAmbient. Czy istnieje sposób na zwiększenie głośności za pomocą PlayAndRecord?iPhone SDK pytanie audioSession

Odpowiedz

7

Podczas korzystania z sesji do odtwarzania i nagrywania, odtwarzanie wychodzi z głośnika używanego w telefonie, w przeciwnym razie wychodzi z głośnika znajdującego się w dolnej części telefonu. to ma zapobiegać sprzężeniom zwrotnym. Można zmienić to jak tak (ale uważaj na informacje zwrotne, a nie problem, jeśli nie robią oba naraz)

//when the category is play and record the playback comes out of the speaker used for phone conversation to avoid feedback 
    //change this to the normal or default speaker 

    UInt32 doChangeDefaultRoute = 1;   
    AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute); 

ten kod działa na 3.1.2, wcześniej SDK trzeba zrobić inaczej.

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; 
    status = AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof (audioRouteOverride), &audioRouteOverride); 

trzeba być ostrożnym z tej metody, zastąpi on nawet jeśli masz słuchawki podłączone, trzeba monitorować przerwy i zmiany tras odpowiednio. znacznie lepiej teraz przy użyciu 3.1.2

-1

Poproś użytkownika o podłączenie słuchawek?

Zestaw słuchawkowy + mikrofon nie cierpi z powodu tego problemu.

Nie wiem, czy to błąd, konsekwencja sprzętu audio, , czy też ciche odtwarzanie jest po prostu celowym i hamowanym sposobem uzyskania czystszych nagrań.

UPDATE

I okazało się, że ustawienie sesji PlayAndRecord zmienia swoją trasę audio do odbiornika.
Najwyraźniej przypadek użycia dotyczy aplikacji telefonicznych, w których użytkownik trzyma urządzenie przy uchu.

Jeśli to nie narusza Zasady Najmniejszej Niespodzianki, nie wiem, co robi.