2017-11-22 139 views
6

Aramaları kaydetmek için bir Android uygulaması geliştiriyorum. Bu, kod snippet'im. android 7 kaydedilmiş aramalarda gelen sesi duyamıyorum?

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

Bu

android 7 altındaki cihazlar için mükemmel çalışıyor ama Android 7 mobil cihazlar kullandığımda yalnızca giden sesini duyabiliyorum ancak gelen sesi duyamıyorum.

Düzeltmek için bana yardımcı olan var mı?

cevap

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

bu

1

Peki kullanmayı deneyin, sorun yalnızca belli ki sadece giden sesidir bu kodu ile mikrofon girişi kaydetmek olmasıdır. Gelen sesi de kaydetmek için sistem sesini de kaydetmeniz gerekir.

Sistem sesini kaydetmek için biraz google olmanız gerekir. İşte başlangıç ​​olarak gereken bazı stackoverflow bağlantılar şunlardır:

Sonunda, aynı zamanda bütün görüşmesi için bir dosya içine iki ses kayd birleştirmek zorundayız tek olarak.

+0

Bu, android 7 cihazları için tasarlanmıştır. –

+0

Farklı bir nedeni olmalı, çünkü gönderdiğiniz kod sadece mikrofon giriş sesini kaydeder. – Twometer

3

bu VoIP gibi ses iletişimi için ayarlanmış mikrofon ses kaynağı olarak AudioSource olarak kullanımı VOICE_COMMUNICATION, as described on Android Developers site.

I VOICE_CALL kullanarak çalıştı

(ses uplink ve downlink bağlantısı kayıt kullanır), fakat bu sistem bileşenleri sadece sadece kullanılabilir Yani mikrofon sadece ses kaydı için seçenek.

TL:
1: Çağrı sırasında ses seviyesini artırmak.
2. Bazı durumlarda mikrofon tarafından ses kaydedilmeyeceği için kulaklık kullanmayın [Bunu denemeyin]. Moto G4 Play'de 3. İşleri, Android sürümü 7.1.1 (Motorola telefonların çoğu iki mikrofon var):

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

+0

bunu zaten denedi ve hala çalışmıyor. :/ –

+0

Giden sesleri kaydedebildiğiniz için problem, kullandığınız telefon ile ilgili olduğunu düşünüyorum. Telefonunuzdaki mikrofon yerleşimi, normal modda giriş yapamayacak şekilde düzenlenmiştir. Hoparlör kullanmayı denedin mi? –

1

bu kod API 25 ile inşa Android 7 için bir cazibe gibi çalışır,

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