MediaRecorder.AudioSource.VOICE_COMMUNICATION kullanarak Kaydedilen Ses, Android 10 yüklü bazı cihazlarda boş


10

Aşağıdaki kodu kullanarak uygulamada sesli mesajlar için ses kaydediyorum.

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();

Kullanımı MediaRecorder.AudioSource.VOICE_COMMUNICATION yerine MediaRecorder.AudioSource.MIC) Önceden işlenen temiz müzikler kaydında çok yararlıdır.

Ancak, son zamanlarda kaydedilen dosyaların boş olduğu bazı sorunları buldum, son zamanlarda Android 10'a güncellenen birkaç cihazda rapor ediliyor. Android 10 cihazlarının tümünün bu sorunlara sahip olmadığı, sadece birkaçının Nokia 6.1 ve Mi A2.

Hata veya istisna yoktur, sadece boş ses çıkış dosyaları vardır.

MediaRecorder.AudioSource.MIC) kullanırsam sorun görülmez.

Android 10 ve VOICE_COMMUNICATION ile ilgili aşağıdaki bilgileri buldum Android 10 sürümü, VOICE_COMMUNICATION ile çekim yapmak için aşağıdaki gereksinimleri içerir.

Buna dayanarak AcousticEchoCanceler, AutomaticGainControl ve NoiseSuppressor'un kullanılabilirliğini aşağıdaki kodu kullanarak kontrol ettim.

AcousticEchoCanceler.isAvailable()
AutomaticGainControl.isAvailable()
NoiseSuppressor.isAvailable()

Aynı sonucu Android 10 ile Mi A2 ve OnePlus 6'da da buldu.

Sorun tüm Android cihazlarda mevcut olmadığından, MediaRecorder.AudioSource.MIC'i kullanmaya geri dönmek istemiyorum ) . Aynı zamanda, ne zaman MediaRecorder.AudioSource.MIC'e geri döneceğimi söyleyen bir hata, istisna veya ayırt edici faktör yoktur .

GÜNCELLEME: Mi A2'de Google Asistan kapatıldığında sorun çözülür. İşaretçi bu olabilir: https://developer.android.com/guide/topics/media/sharing-audio-input

Bununla ilgili herhangi bir yardım takdir edilmektedir.



1
Bağladığınız yayın MediaRecorder.AudioSource.VOICE_CALL hakkında konuşuyor. Ne kullanıyorum MediaRecorder.AudioSource olduğunu. VOICE_COMMUNICATION. Bence bazı farklar var. Ayrıca, çağrıları kaydetmiyorum. Her zamanki sesli mesajları bir mesajlaşma uygulamasına kaydediyorum. Ayrıca, tüm Android 10 cihazlarında değil, daha önce de belirttiğim gibi sadece birkaçında başarısız oluyor.
binaryKarmic

Yanıtlar:


1

Ben kullanarak sona erdi MediaRecorder.AudioSource.VOICE_RECOGNITION yerine MediaRecorder.AudioSource.VOICE_COMMUNICATION tüm android sürümlerinde.

15'ten fazla farklı cihazda örnek aldık ve MediaRecorder.AudioSource.VOICE_RECOGNITION'ın yüksek kaliteli ve orta sınıf telefonlar da dahil olmak üzere çoğu cihazla en iyi şekilde çalıştığını öğrendik .

Anladığım kadarıyla, bazı cihazlarda birkaç cihazda karşılaşılan orijinal sorun, Android 10 ve VOICE_COMMUNICATION ile ilgili OEM'lerin uygulama sorunları gibi görünüyor https://source.android.com/devices/audio/implement-pre-processing


Nokia 6.1'de tam olarak aynı sorunla karşılaştım ve gerçekten Google Asistan'ı kapatmak yardımcı oluyor. Ama gerçekten VOICE_COMMUNICATION ses kaynağını kullanmak istersem ne olur? Müşterilerimizden yardımcılarını devre dışı bırakmalarını isteyemiyorum ve akustik yankı iptali gibi ses önişleme özelliklerini kullanmak istiyorum. Belki manuel olarak farklı ses fx kurabilirim, ancak başka bir tavsiyeniz varsa, takdir edilecektir)
Alexey Ershov

1
Nereden geldiğini anlıyorum. Buradaki sorun, gelecekte çözebilecekleri veya çözemeyecekleri OEM'ler tarafından hatalı bir uygulama gibi görünüyor, bu yüzden ona güvenmenin bir anlamı yok. Birkaç saniye sonra kaydedilen sesi gözlemlemek gibi bazı özel düzeltmeler yapabilirsiniz. Boşsa ve işletim sistemi sürümü 10'un üzerindeyse, kullanıcıya VOICE_RECOGNITION kullanarak Asistanı kapatma veya biraz düşük kaliteye geçme seçeneği verin.
binaryKarmic
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.