1
recorder = new MediaRecorder();

    recorder.setAudioSource(MediaRecorder.AudioSource.MIC );
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);



recorder.setMaxDuration(10000 * 10); 
recorder.setOnInfoListener(null); 
recorder.setOutputFile(s+"/sh1.3gp");
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);


    try {  
        recorder.setAudioSamplingRate(TRIM_MEMORY_BACKGROUND);
        recorder.setAudioChannels(1);
        recorder.prepare(); 
        recorder.start();
        }  
    catch (Exception e2) {
            tv.setText("OHH"+e2.toString());

            } 

上記はレコーダーを再生するコードです。レコーダーを起動すると、起動に失敗しました:

しかし、ファイルsh1.3gp(3gpファイル)ファイルがAndroid SDカードに作成されます.. 解決策を返信してください

4

2 に答える 2

0

このコードを試して、オーディオを録音してください。レコーダーのオブジェクトを作成します。および
File audioFile=null;

File sampleDir = Environment.getExternalStorageDirectory();
try {
audiofile = File.createTempFile("Recording", ".3gp", sampleDir);
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setOutputFile(audiofile.getAbsolutePath());
    recorder.prepare();
recorder.start();  
    }
    catch (IOException e)
   {
   Log.e(TAG, "sdcard access error");
   return;
}

そして、次のコードを使用して、このオーディオを SD カードに保存できます。

audioFileName=input.getText().toString();
current = System.currentTimeMillis();
String artist = "" + getResources().getText(R.string.artistName);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, audiofile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, audioFileName);
values.put(MediaStore.Audio.Media.DATE_ADDED,  current );
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/3gpp");
values.put(MediaStore.Audio.Media.ARTIST, artist);              
values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath());
ConntentResolver contentResolver = getContentResolver();
Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Uri newUri1 = contentResolver.insert(base, values);
于 2012-09-05T07:34:53.467 に答える
0

このコードをエミュレータで実行していますか? その場合、設定を変更せずにエミュレーターでオーディオを保存することはできないため、実際のデバイスで実行する必要があります。より簡単な方法は、実際の (ハードウェア) デバイスでテストすることです。

于 2012-09-05T07:14:18.733 に答える