25

मैं नेक्सस 5 एक्स, एंड्रॉइड 7.1 (एओएसपी से अपना खुद का निर्माण) पर के साथ AudioRecord का उपयोग करने का प्रयास कर रहा हूं।कॉल रिकॉर्डिंग - इसे नेक्सस 5 एक्स (रूटिंग या कस्टम रोम संभव) पर काम करें

मैं पहले से ही अनुमति चरण से पहले हूं - मेरे एपीके को विशेषाधिकार प्राप्त ऐप्स में ले जाया गया है, इस स्रोत के बारे में अपवाद फेंकने के लिए एंड्रॉइड स्रोत में AudioRecord पर समायोजन किया गया है।

अब मुझे फोन कॉल के दौरान खाली रिकॉर्डिंग बफर मिल रहा है।

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

मैं नेक्सस 5 एक्स पर इसे प्राप्त करना चाहता हूं - एंड्रॉइड संस्करण बदलने, क्वालकॉम ड्राइवरों, डिवाइस कॉन्फ़िगरेशन फ़ाइलों आदि को संशोधित करने सहित, मेरे लिए कोई भी समायोजन ठीक है - मूल रूप से कुछ भी जो कस्टम रोम में हासिल किया जा सकता है।

मैंने प्लेटफार्म कोड - हार्डवेयर/क्यूकॉम/ऑडियो/हॉल/वॉयस.c, विशेष रूप से फ़ंक्शन voice_check_and_set_incall_rec_usecase के साथ गड़बड़ करने का प्रयास किया है, लेकिन अब तक इसका अर्थ नहीं हो सका।

इसके अलावा डिवाइस/LGE/Bullhead/mixer_paths.xml जाँच की, वहाँ रिकॉर्डिंग कॉल करने के लिए संबंधित एक वर्ग है पाया:

<!-- Incall Recording --> 
<ctl name="MultiMedia1 Mixer VOC_REC_UL" value="0" /> 
<ctl name="MultiMedia1 Mixer VOC_REC_DL" value="0" /> 
<ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" /> 
<ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" /> 
<!-- Incall Recording End --> 

लेकिन मैं यह भी इससे बाहर मतलब नहीं कर सकता है या यह कैसे मदद की जा सकती।

+0

क्या आपको कोई निष्पादन मिल रहा है? –

+0

कोशिश करने और जांचने में audioRecoder.record() डालने का प्रयास करें। अपने रिकॉर्डिंग कोड को थोड़ा सा पोस्ट करें। –

+0

कोई दुर्घटना नहीं है, इसलिए कोशिश करने में कोई बात नहीं है। – SirKnigget

उत्तर

0

यह सुनिश्चित नहीं है कि यह Nexus 5 विशिष्ट समस्या है लेकिन आमतौर पर कॉल रिकॉर्ड करने के लिए उपयोग की जाने वाली कक्षा MediaRecorder है। क्या आपने को MediaRecorder से प्रतिस्थापित करने का प्रयास किया है?

this ढेर-अतिप्रवाह सवाल के आधार पर, मुझे लगता है कि आप Ben blog post के आधार पर निम्न कोड की कोशिश कर सकते:

import android.media.MediaRecorder; 
import android.os.Environment; 

import java.io.File; 

import java.io.IOException; 


public class CallRecorder { 

    final MediaRecorder recorder = new MediaRecorder(); 
    final String path; 

    /** 
    * Creates a new audio recording at the given path (relative to root of SD card). 
    */ 
    public CallRecorder(String path) { 
     this.path = sanitizePath(path); 
    } 

    private String sanitizePath(String path) { 
     if (!path.startsWith("/")) { 
      path = "/" + path; 
     } 
     if (!path.contains(".")) { 
      path += ".3gp"; 
     } 
     return Environment.getExternalStorageDirectory().getAbsolutePath() + path; 
    } 

    /** 
    * Starts a new recording. 
    */ 
    public void start() throws IOException { 
     String state = android.os.Environment.getExternalStorageState(); 
     if(!state.equals(android.os.Environment.MEDIA_MOUNTED)) { 
      throw new IOException("SD Card is not mounted. It is " + state + "."); 
     } 

     // make sure the directory we plan to store the recording in exists 
     File directory = new File(path).getParentFile(); 
     if (!directory.exists() && !directory.mkdirs()) { 
      throw new IOException("Path to file could not be created."); 
     } 

     recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
     recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
     recorder.setOutputFile(path); 
     recorder.prepare(); 
     recorder.start(); 
    } 

    /** 
    * Stops a recording that has been previously started. 
    */ 
    public void stop() throws IOException { 
     recorder.stop(); 
     recorder.release(); 
    } 

} 

मैं MediaRecorder.AudioSource.VOICE_CALL का उपयोग किया है इस नमूने में, लेकिन आप MediaRecorder.AudioSource.VOICE_COMMUNICATION और भी जैसे अन्य विकल्पों का परीक्षण कर सकते माइक्रोफोन सिर्फ यह देखने के लिए कि क्या आपके फोन पर कोई हार्डवेयर समस्या है या नहीं।

+0

मुझे वास्तविक समय में रिकॉर्ड करने के लिए ऑडियो रिकॉर्ड का उपयोग करने की आवश्यकता है। – SirKnigget

+0

** अब मुझे फोन कॉल के दौरान खाली रिकॉर्डिंग बफर मिल रहा है ** - क्या ऐसा है क्योंकि ऑडियो रिकॉर्डक और एक ही चैनल का उपयोग कर कॉल ???? क्या आपने कुछ अलग-अलग स्रोतों को सुनने की कोशिश की है, जैसे स्पीकर पर कॉल डालना और फिर – Debu

+0

को आजमाएं, मुझे स्पीकर पर कॉल डालने में कोई दिलचस्पी नहीं है, मुझे ऑडियोसोर्स.VOICE_CALL से कॉल को ठीक से रिकॉर्ड करने की आवश्यकता है। – SirKnigget

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