मैं रिकॉर्ड बटन को पकड़ने तक और ध्वनि को अपने प्रोजेक्ट में कच्चे फ़ोल्डर में सहेजने तक आवाज रिकॉर्ड करना चाहता हूं। मैंने नीचे दिए गए कोड का इस्तेमाल किया। Altough कोई त्रुटि नहीं दिखाई देता है, मैं कोई आउटपुट नहीं मिल सका। क्या समस्या हो सकती है ? क्या तुम्हारे पास कोई सुझाव है? धन्यवाद,जब तक कोई बटन पकड़ने तक मैं एंड्रॉइड में ध्वनि रिकॉर्ड कैसे कर सकता हूं?
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Runnable mAction = new Runnable() {
public void run() {
System.out.println("Performing action...");
int frequency=11025;
int channelConfiguration=AudioFormat.CHANNEL_CONFIGURATION_MONO;
int audioEncoding= AudioFormat.ENCODING_PCM_16BIT;
File file=new File(Environment.getExternalStorageDirectory(),"raw.pcm");
try{
file.createNewFile();
}catch(IOException e){}
try{
OutputStream os=new FileOutputStream(file);
BufferedOutputStream bos=new BufferedOutputStream(os);
DataOutputStream dos=new DataOutputStream(bos);
int bufferSize=AudioRecord.getMinBufferSize(frequency, channelConfiguration,
audioEncoding);
short[] buffer=new short[bufferSize];
audioRecorder=new AudioRecord(MediaRecorder.AudioSource.MIC,
frequency, channelConfiguration, audioEncoding, bufferSize);
audioRecorder.startRecording();
isRecording=true;
while(isRecording){
int bufferReadResult=audioRecorder.read(buffer, 0,bufferSize);
for(int i=0;i<bufferReadResult;i++){
dos.writeShort(buffer[i]);
}
}
audioRecorder.stop();
dos.close();
}catch(Throwable t){}
}
};
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (myHandler != null) return true;
myHandler = new Handler();
myHandler.postDelayed(mAction, 500);
break;
case MotionEvent.ACTION_UP:
if (myHandler == null) return true;
isRecording=false;
myHandler.removeCallbacks(mAction);
myHandler = null;
break;
}
return false;
}
आपकी मदद के लिए धन्यवाद – selenk
स्रोत से लिंक करना और प्रतिलिपि बनाने के बजाय कोड के प्रासंगिक हिस्सों की व्याख्या करना बेहतर होगा: https://github.com/krvarma/krvarma-android-samples/tree/master/AudioRecorder। 1 –