1

音声を録音する 1 つのアプリケーションを作成しています。StopRecording ボタンをクリックすると
、SD カード/内部メモリに保存されます。ただし、保存中には のようなランダムな名前が付けられ sound1356543ます。
しかし、 MyAudio1
MyAudio2
MyAudio3
MyAudionのように、ユーザーの選択またはシーケンスごとに名前を設定する必要があり
ます。参照用の私のコードは次のとおりです。

File sampleDir = Environment.getExternalStorageDirectory();         

        audiofile = File.createTempFile("Recording", ".3gp", sampleDir);                    
            recorder = new MediaRecorder();
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            //recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            recorder.setOutputFile(audiofile.getAbsolutePath());

protected void addRecordingToMediaLibrary() {
    ContentValues values = new ContentValues(4);
    long current = System.currentTimeMillis();
    values.put(MediaStore.Audio.Media.TITLE, "audio" + audiofile.getName());
    values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current / 1000));
    values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/3gpp");
    values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath());
    ContentResolver contentResolver = getContentResolver();

    Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    Uri newUri = contentResolver.insert(base, values);

    sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, newUri));
    Toast.makeText(this, "Added File " + newUri, Toast.LENGTH_LONG).show();
}

}

オーディオファイルに名前を設定する方法。
前もって感謝します。

4

1 に答える 1

0

この行を削除してから確認してください

values.put(MediaStore.Audio.Media.TITLE, "audio" + audiofile.getName());

私はこのような同じ問題を抱えていました。

于 2012-08-03T12:43:40.543 に答える