5

मैं वर्तमान में एक ऐप लिख रहा हूं जो ऑडियो डेटा की रिकॉर्डिंग और रीयल टाइम प्रोसेसिंग की मांग करता है। इसके लिए, मैं ऑडियो रिकॉर्डॉर्ड क्लास का उपयोग कर रहा हूं। यह सभी प्राथमिक और अच्छा काम करता है, मेरे प्राथमिक परीक्षण डिवाइस पर ऑडियो रिकॉर्ड करने के लिए डिफ़ॉल्ट सेटिंग को छोड़कर, गैलेक्सी नेक्सस, बैक स्पीकर से रिकॉर्ड करना है। मुझे लगता है कि ज्यादातर फोन डिफ़ॉल्ट रिकॉर्ड स्रोत बैक, या नीचे माइक्रोफोन होंगे, क्योंकि जब आप कॉल करने के लिए फोन का उपयोग कर रहे हैं, तो आपका मुंह नीचे के पास है।एंड्रॉइड ऑडियो रिकॉर्ड बदलें डिफ़ॉल्ट इनपुट स्रोत

हालांकि, मेरे ऐप की आवश्यकता है कि मैं फोन के सामने स्पीकर से रिकॉर्ड करूं, और इसलिए मैं उम्मीद कर रहा था कि ऑडियोरैकॉर्ड इनपुट स्रोत को प्रोग्रामेटिक रूप से कैसे बदला जाए। मैंने इसका जवाब देने के लिए बड़े पैमाने पर खोज की है।

कुछ बातें मैं विचार किया हैं:

  • AudioManager कक्षा का उपयोग करते हुए और इस प्रकार, स्पीकर फोन पर मोड़:

    AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    am.setSpeakerphoneOn(true);

  • मेरी AudioRecord के निर्माण में AudioSource पैरामीटर बदलने ऑब्जेक्ट:

    AudioRecord ar = new AudioRecord(AudioSource.????, ..., ..., ..., ...);

  • मुझे पता चला है कि एपीआई के बारे में बहुत विशिष्ट नहीं हैं कि किस ऑडियोसोर्स प्रारूप हैं, इसलिए मैं सोच रहा था कि किसी और ने इस मुद्दे से संघर्ष किया है और मुझे सही दिशा में इंगित कर सकता है।

    अग्रिम धन्यवाद,

    +0

    इस MediaRecorder.AudioSource.VOICE_CALL को आजमाएं .. – Sandeep

    +0

    हालांकि मैं MediaRecorder ऑब्जेक्ट का उपयोग नहीं कर रहा हूं .... – lbrendanl

    उत्तर

    0

    एंड्रॉयड वर्तमान में कॉल रिकॉर्डिंग का समर्थन नहीं करता है, इसलिए मेरा मानना ​​है कि आप इयरपीस से रिकॉर्ड करने के लिए इसे बदल नहीं सकते हैं। आपको वास्तव में जरूरत नहीं है, हालांकि, फोन के निचले हिस्से में माइक आपको पूर्ण क्षमता की चीजों को रिकॉर्ड करने में सक्षम होना चाहिए। ऑडियो रिकॉर्ड को माइक्रो पर सेट करने के लिए, बस करें:

    AudioRecord ar = new AudioRecord(AudioSource.MIC, ..., ..., ..., ...); 
    

    यह आपको सबसे अच्छी रिकॉर्डिंग गुणवत्ता प्रदान करेगा।

    संबंधित मुद्दे