5

Obecnie piszę aplikację, która wymaga nagrywania i przetwarzania danych audio w czasie rzeczywistym. Do tego używam klasy AudioRecord. Działa to dobrze i dobrze, z wyjątkiem domyślnego ustawienia nagrywania dźwięku na moim podstawowym urządzeniu testującym, nexusie galaktyk, jest nagrywanie z tylnego głośnika. Domyślam się, że większość telefonów będzie miała źródło w tylnych lub dolnych mikrofonach, ponieważ kiedy używasz telefonu do dzwonienia, twoje usta są blisko dna.Zmiana nagrania dźwiękowego Android Domyślne wejście Źródło

Jednak moja aplikacja wymaga nagrania z głośnika z przodu telefonu, więc miałem nadzieję, że ktoś może mi pomóc programowo zmienić źródło sygnału AudioRecord. Szukałem obszernie odpowiedzi na to pytanie.

Niektóre rzeczy, jakie uważane są:

  • Korzystanie z klasy Audiomanager i włączania głośnika telefonu, takich jak:

    AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    am.setSpeakerphoneOn(true);

  • Zmiana parametru AudioSource w budowie mojego AudioRecord obiekt:

    AudioRecord ar = new AudioRecord(AudioSource.????, ..., ..., ..., ...);

  • Zauważyłem, że interfejsy API nie są zbyt szczegółowe co do formatów AudioSource, więc zastanawiałem się, czy ktoś inny zmaga się z tym problemem i może wskazać mi właściwy kierunek.

    Dzięki z góry,

    +0

    spróbuj tego MediaRecorder.AudioSource.VOICE_CALL .. – Sandeep

    +0

    Nie używam obiektu MediaRecorder chociaż .... – lbrendanl

    Odpowiedz

    0

    Android nie obsługuje nagrywanie rozmów, więc wierzę, że nie można go zmienić, aby nagrywać od słuchawce. Nie powinieneś jednak potrzebować mikrofonu znajdującego się u dołu telefonu, aby móc nagrywać rzeczy do pełnej pojemności, której potrzebujesz. Aby ustawić AudioRecord na mikrofon, po prostu wykonaj:

    AudioRecord ar = new AudioRecord(AudioSource.MIC, ..., ..., ..., ...); 
    

    Zapewni to najlepszą jakość nagrywania.