MediaRecorder.AudioSource.VOICE_COMMUNICATION का उपयोग करके रिकॉर्ड किया गया ऑडियो Android 10 वाले कुछ उपकरणों पर खाली है


10

मैं निम्नलिखित कोड का उपयोग करके ऐप में ध्वनि संदेशों के लिए ऑडियो रिकॉर्ड कर रहा हूं।

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

MediaRecorder.AudioSource.VOICE_COMMUNICATION के बजाय MediaRecorder.AudioSource.MIC) का उपयोग पूर्व-संसाधित स्वच्छ ऑडियो रिकॉर्ड करने में बहुत मददगार है।

लेकिन, हाल ही में मुझे कुछ मुद्दे मिले, जिनमें रिकॉर्ड की गई फाइलें खाली हैं, कुछ उपकरणों पर रिपोर्ट की जा रही हैं, जिन्हें हाल ही में एंड्रॉइड 10 में अपडेट किया गया था। यह ध्यान दिया जाना चाहिए कि सभी एंड्रॉइड 10 डिवाइसों में ये मुद्दे नहीं हैं, केवल कुछ यानी नोकिया 6.1 और Mi A2।

कोई त्रुटि या अपवाद नहीं है, लेकिन सिर्फ खाली ऑडियो आउटपुट फाइलें हैं।

अगर मैं MediaRecorder.AudioSource.MIC) का उपयोग करता हूं, तो समस्या देखी नहीं जाती है।

मुझे Android 10 और VOICE_COMMUNICATION से संबंधित निम्न जानकारी मिली । Android 10 रिलीज़ में VOICE_COMMUNICATION के साथ कैप्चर करने के लिए निम्नलिखित आवश्यकताएँ शामिल हैं।

इसके आधार पर मैंने निम्नलिखित कोड का उपयोग करके ध्वनिक इकोक्रैक्टर, ऑटोमैगनकंट्रोल और नॉइज़सुप्रेसर की उपलब्धता की जाँच की।

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

और एंड्रॉइड 10 के साथ Mi A2 और वनप्लस 6 पर एक ही परिणाम मिला। दोनों डिवाइस उपलब्ध के रूप में ध्वनिक इकोक्रैक्टर और नॉइससुप्रेसर दिखाते हैं और उपलब्ध नहीं के रूप में ऑटोमैगनकंट्रोल।

चूंकि यह मुद्दा सभी Android उपकरणों पर मौजूद नहीं है, इसलिए मैं MediaRecorder.AudioSource.MIC का उपयोग करके वापस नहीं आना चाहता हूं । उसी समय, कोई त्रुटि, अपवाद या विभेदक कारक नहीं है जो मुझे बताता है कि MediaRecorder.AudioSource.MIC पर वापस कब आना है )

अद्यतन: जब Google सहायक Mi A2 पर बंद हो जाता है तो समस्या हल हो जाती है। यह पॉइंटर हो सकता है: https://developer.android.com/guide/topics/media/sharing-a-a-put

इस बारे में कोई मदद की सराहना की है।



1
आपके द्वारा MediaRecorder.AudioSource.VOICE_CALL के बारे में पोस्ट को लिंक किया गया। मैं जो उपयोग कर रहा हूं वह MediaRecorder.AudioSource है। आवाज संचार। मेरा मानना ​​है कि इसमें कुछ अंतर है। इसके अलावा, मैं कॉल रिकॉर्ड नहीं कर रहा हूं। मैं एक मैसेजिंग ऐप में सामान्य ऑडियो संदेश रिकॉर्ड कर रहा हूं। इसके अलावा, यह सभी एंड्रॉइड 10 उपकरणों पर विफल नहीं है, लेकिन केवल कुछ पर जैसा कि मैंने पहले उल्लेख किया है।
बाइनरीकर्मिक

जवाबों:


1

मैं का उपयोग कर समाप्त हो गया MediaRecorder.AudioSource.VOICE_RECOGNITION के बजाय MediaRecorder.AudioSource.VOICE_COMMUNICATION सभी Android संस्करण पर।

हमने 15+ विभिन्न उपकरणों पर नमूने लेना समाप्त कर दिया और पता लगाया कि MediaRecorder.AudioSource.VOICE_RECOGNITION उच्च-अंत और मध्य-श्रेणी के फोन सहित अधिकांश उपकरणों के साथ सबसे अच्छा काम करता है।

मेरी समझ के अनुसार, कुछ उपकरणों पर कुछ उपकरणों पर सामना करने वाला मूल मुद्दा एंड्रॉइड 10 के संबंध में ओईएम द्वारा कार्यान्वयन के मुद्दों जैसा लगता है और VOICE_COMMUNICATION https://source.android.com/devices/audio/implement-pre-proinging


मुझे Nokia 6.1 पर वास्तव में एक ही मुद्दे का सामना करना पड़ा, और वास्तव में Google सहायक को बंद करने में मदद मिलती है। लेकिन क्या होगा अगर मैं वास्तव में VOICE_COMMUNICATION ऑडियो स्रोत का उपयोग करना चाहता हूं? मैं अपने ग्राहकों को अपने सहायकों को निष्क्रिय करने के लिए नहीं कह सकता, और मैं ध्वनिक गूंज रद्द करने जैसे ऑडियो प्रीप्रोसेसिंग सुविधाओं का उपयोग करने में सक्षम होना चाहता हूं। शायद मैं मैन्युअल रूप से अलग ऑडियो एफएक्स सेट कर सकता हूं, लेकिन अगर आपको कोई अन्य सलाह मिली, तो इसकी सराहना की जाएगी)
एलेक्सी एर्शोव

1
मुझे पता है कि आपका आगमन कहां से हो रहा है। यहाँ समस्या ओईएम द्वारा बुग्गी कार्यान्वयन की तरह प्रतीत होती है जिसे वे भविष्य में ठीक कर सकते हैं या नहीं भी कर सकते हैं, इसलिए इस पर भरोसा करने का कोई मतलब नहीं है। आप कुछ कस्टम फिक्स कर सकते हैं जैसे कि कुछ सेकंड के बाद रिकॉर्ड किए गए ऑडियो का निरीक्षण करें। यदि यह रिक्त है और OS संस्करण 10 से ऊपर है, तो उपयोगकर्ता को VOICE_RECOGNITION का उपयोग करके सहायक को बंद करने या थोड़ी कम गुणवत्ता पर स्विच करने का विकल्प दें।
बाइनरीकर्मिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.