2017-11-22 76 views
6

Zajmuję się tworzeniem aplikacji Android do nagrywania połączeń. To jest mój fragment kodu.nie słyszy głosu przychodzącego w zarejestrowanych połączeniach w systemie Android 7?

recorder = new MediaRecorder(); 
    recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
    recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); 
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
    recorder.setOutputFile(file_path); 

to doskonale działa na urządzeniach poniżej android 7, ale kiedy używać Androida 7 urządzeń mobilnych słyszę tylko głos wychodzący ale nie słychać głosu przychodzące.

Czy ktoś może mi pomóc w jego naprawieniu?

Odpowiedz

1
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

spróbować użyć tej

1

dobrze, problemem jest to, że tylko nagrać wejście mikrofonowe z tym kodem, który jest oczywiście tylko ustępujący głos. Aby nagrać przychodzący głos, musisz również nagrać dźwięk systemowy.

Aby nagrać dźwięk systemu, musisz trochę google. Oto kilka linków StackOverflow, który powinien zacząć grę:

W końcu, można by również połączyć dwie ścieżki dźwiękowe do jednego pliku, aby mieć całą rozmowę jak jeden.

+0

to działa na urządzenia Android Android 7 urządzeń. –

+0

To musi być inna przyczyna, ponieważ kod, który wysłałeś, rejestruje dźwięk wejściowy mikrofonu. – Twometer

3

Zastosowanie VOICE_COMMUNICATION jak AudioSource jak to jest źródło dźwięku mikrofon dostrojony do komunikacji głosowej, takie jak VoIP, as described on Android Developers site.

Próbowałem za pomocą VOICE_CALL (Używa uplink nagrywania audio i downlink), ale może być stosowany tylko przez zaledwie komponentów systemowych , Więc mikrofon to tylko opcja nagrywania dźwięku.

TRY:
1: Przesuwanie głośności podczas połączenia.
2. NIE używaj słuchawek, ponieważ dźwięk nie będzie nagrywany przez mikrofon w niektórych przypadkach [Nie próbowałem tego]. 3. Prace nad Moto G4 Play, Android w wersji 7.1.1 (większość telefonów Motorola posiada dwa mikrofony):

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION); recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

+0

próbowałem tego już i nadal nie działa. :/ –

+0

Myślę, że problem leży w używanym telefonie, ponieważ możesz nagrywać głos wychodzący. Umieszczenie mikrofonu w telefonie jest takie, że nie może nagrywać przychodzących w trybie normalnym. Czy próbowałeś używać głośnika? –

1

ten kod działa jak czar dla Androida 7 zbudowany z API 25

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
recorder.setAudioSamplingRate(8000); 
recorder.setAudioEncodingBitRate(12200); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
Powiązane problemy