J'enregistre de l'audio pour les messages vocaux dans l'application en utilisant le code suivant.
MediaRecorder audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
audioRecorder.setOutputFile(audioRecordingFile);
audioRecorder.prepare();
audioRecorder.start();
L'utilisation de MediaRecorder.AudioSource.VOICE_COMMUNICATION au lieu de MediaRecorder.AudioSource.MIC) est très utile pour l'enregistrement d'audios propres prétraités.
Mais, récemment, j'ai trouvé que certains problèmes dans lesquels les fichiers enregistrés sont vides sont signalés sur quelques appareils qui ont été récemment mis à jour vers Android 10. Il convient de noter que tous les appareils Android 10 n'ont pas ces problèmes, seulement quelques-uns, par exemple Nokia 6.1 et Mi A2.
Il n'y a pas d'erreur ou d'exception mais juste des fichiers de sortie audio vides.
Si j'utilise MediaRecorder.AudioSource.MIC), le problème n'est pas visible.
J'ai trouvé les informations suivantes concernant Android 10 et VOICE_COMMUNICATION La version Android 10 inclut les exigences suivantes pour la capture avec VOICE_COMMUNICATION.
Sur cette base, j'ai vérifié la disponibilité d'AcousticEchoCanceler, AutomaticGainControl et NoiseSuppressor en utilisant le code suivant.
AcousticEchoCanceler.isAvailable()
AutomaticGainControl.isAvailable()
NoiseSuppressor.isAvailable()
Et a trouvé le même résultat sur Mi A2 et OnePlus 6 avec Android 10. Les deux appareils affichent AcousticEchoCanceler et NoiseSuppressor comme disponibles et AutomaticGainControl comme non disponibles.
Étant donné que le problème n'est pas présent sur tous les appareils Android, je ne veux pas recourir à MediaRecorder.AudioSource.MIC) . En même temps, il n'y a aucune erreur, exception ou facteur de différenciation qui me dit quand me replier sur MediaRecorder.AudioSource.MIC) .
MISE À JOUR: Le problème est résolu lorsque Google Assistant est désactivé sur Mi A2. Cela pourrait être le pointeur: https://developer.android.com/guide/topics/media/sharing-audio-input
Toute aide à ce sujet est appréciée.