AudioSource.VOICE_CALL не работает в android 4.0, но работает в android 2.3
VOICE_CALL, VOICE_DOWNLINK ,VOICE_UPLINK
не работает в android 4.0, но работает над Android 2.3 (фактическое устройство), я загрузил фиктивный проект для записи всего исходящего вызова, чтобы вы могли его увидеть для себя
http://www.mediafire.com/?img6dg5y9ri5c7rrtcajwc5ycgpo2nf
вам просто нужно изменить audioSource = MediaRecorder.AudioSource.MIC;
на audioSource = MediaRecorder.AudioSource.VOICE_CALL;
в строке 118 в TService.java
Если вы столкнетесь с какой-либо ошибкой, скажите мне
Любое предложение, связанное с ним, будет принято
Если какая-либо проблема сообщит мне
Заранее спасибо
Ответы
Ответ 1
После большого поиска я обнаружил, что некоторые производители закрыли доступ к такой функции, поскольку запись вызовов в некоторых странах запрещена. Если кто-то найдет такой вопрос и получит решение другим способом, тогда опубликуйте его здесь, это может быть полезно многим, потому что у многих людей есть одна и та же проблема.
Ответ 2
Попробуйте использовать MediaRecorder.AudioSource.VOICE_RECOGNITION
. У меня была та же проблема - ASUS Transformer по умолчанию использует микрофон возле задней камеры, а звук в этом случае очень тихий. VOICE_CALL
не работает на этом планшете, и я пробовал VOICE_RECOGNITION
- в этом случае он использует передний микрофон, а громкость звука в порядке.
Ответ 3
ОК, в моем случае этот код (спасибо eyal!) работал на Samsung Galaxy Примечание 6:
String manufacturer = Build.MANUFACTURER;
if (manufacturer.toLowerCase().contains("samsung")) {
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
} else {
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
}
Ответ 4
вы пытаетесь добавить это, это может быть
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
mMediaRecorder.start();
}
}, 1000);