2012-02-07 16 views
5

एंड्रॉइड में आने वाले/आउटगोइंग कॉल के दौरान मोबाइल के स्पीकर को खोलने के बिना वॉयस कॉल रिकॉर्ड करना संभव है। मैंने एंड्रॉइड बाजार में एक एप्लीकेशन देखा था। यह स्पीकर खोलने के बिना अन्य तरफ आवाज को सही ढंग से रिकॉर्ड नहीं करता है क्योंकि यह रिकॉर्डिंग उद्देश्य के लिए माइक का उपयोग करता है। यह कुछ अन्य तकनीकों से किया जा सकता है?क्या एंड्रॉइड में इनकमिंग या आउटगोइंग कॉल के दौरान कॉल रिकॉर्ड करना संभव है

final MediaRecorder callrecorder = new MediaRecorder(); 

callrecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
callrecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
callrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
callrecorder.setOutputFile(recordPath); 
callrecorder.prepare(); 
callrecorder.start(); 
+2

हालांकि रिकॉर्ड करना संभव है, लेकिन कुछ देशों में यह अवैध है, बहुत पहले हमने ब्लैकबेरी ऐप बनाया है लेकिन कुछ गोपनीयता कानूनों के उल्लंघन के कारण इसे प्रतिबंधित कर दिया गया था। – Yuvi

+0

हां यह संभव है, कृपया [यह] जांचें (http://stackoverflow.com/questions/6839297/record-call-in-android-2-2) लिंक। आप रिकॉर्डिंग के लिए नमूना कोड भी पा सकते हैं। – Lucifer

+0

क्या मोबाइल के स्पीकर को खोलने के बिना यह संभव है? – shyam

उत्तर

2

आप इस प्रकार MediaRecorder क्लास का उपयोग की जरूरत है,

recorder = new MediaRecorder(); 
int audioSource = MediaRecorder.AudioSource.VOICE_CALL; 
recorder.setAudioSource(audioSource); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
final String filePath = Environment.getExternalStorageDirectory() + "/record.3gpp"; 
final File file = new File(filePath); 
file.getParentFile().mkdirs(); 
recorder.setOutputFile(filePath); 
recorder.prepare(); 
recorder.start(); // Recording is now started 
+0

मोबाइल के स्पीकर को खोलने के बिना यह संभव है? – shyam

+0

कोई डिवाइस सीमाएं? – shyam

0

Android फ़ोन (मेरी जानकारी के लिए) एक आवेदन प्रोसेसर और एक मॉडेम प्रोसेसर है। जब फोन वॉइस कॉल में होता है, तो मॉडेम प्रोसेसर से सीधे ऑडियो हार्डवेयर तक ऑडियो डेटा रूट किया जाता है (जब तक कोई एचडब्लू चेंज नहीं होता)। एप्लिकेशन प्रोसेसर को ऑडियो डेटा से खुशी से अनजान है, लेकिन केवल कॉल स्थिति की जानकारी है।

तो, संक्षेप में आप उपयुक्त एचडब्ल्यू समर्थन के बिना ऑडियो डेटा रिकॉर्ड करने में सक्षम नहीं होंगे।

+0

किस प्रकार के हार्डवेयर समर्थन की आवश्यकता है जो एंड्रॉइड के पास सभी संस्करणों में नहीं है .. क्या एंड्रॉइड संस्करणों के लिए सीमाएं भी हैं? – shyam

+0

इसका एंड्रॉइड संस्करण के साथ कुछ लेना देना नहीं है। एचडब्ल्यू समर्थन का मतलब है कि पीसीएम लाइनों को मॉडेम प्रोसेसर से एप्लिकेशन प्रोसेसर में खींचा जाना चाहिए। – santosh

0

एमआईसी के लिए ऑडियो स्रोत की स्थापना मेरे लिए काम किया ..

CallRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 

लेकिन सभी उपकरणों कॉल रिकॉर्डिंग के लिए हार्डवेयर समर्थन प्रदान करते हैं। इसका संदर्भ लें [लिंक]: http://forum.xda-developers.com/showthread.php?t=926498

परिणाम यह था कि कुछ फोनों में कॉलर और कैली की आवाज दोनों दर्ज की गई जबकि अन्य में केवल स्पीकर की आवाज़ दर्ज की गई।

0

आप समय पर ऑडियो स्रोत MediaRecorder.AudioSource.VOICE_DOWNLINK & MediaRecorder.AudioSource.VOICE_UPLINK दोनों के साथ जांच सकते हैं।

यह समाधान मेरे लिए काम किया।

Callrecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK | MediaRecorder.AudioSource.VOICE_UPLINK); 
संबंधित मुद्दे