我有一个声音文件已经在SD卡如何在Android中检索

时间:2013-02-06 14:48:37

标签: android

我正在通过媒体播放器保存一些录音:

private void startrecording() {

        audiofile = getAudiofile();
        if (audiofile != null)
            myaudiorecoreder = new MediaRecorder();
        myaudiorecoreder.setAudioSource(MediaRecorder.AudioSource.MIC);
        myaudiorecoreder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        myaudiorecoreder.setOutputFile(audiofile.getAbsolutePath());
        myaudiorecoreder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        try {
            myaudiorecoreder.prepare();
            setRecordstatus(true);

        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        myrecordtextview.setText("RECORDING STARTED..SPEAK NOW");
        myaudiorecoreder.start();

// audiofile将提供声音文件。 这是getAudiofile()的代码,我从中获取文件(空)。 //

private File getAudiofile() {
        String extState = Environment.getExternalStorageState();
        if (extState.equals(Environment.MEDIA_MOUNTED)) {
            File mediaStorageDir = new File(
                    Environment.getExternalStorageDirectory() + "/TAUKY/AUDIO");
            if (!mediaStorageDir.exists()) {
                if (!mediaStorageDir.mkdirs()) {
                    Log.e("SDCARD", "failed to create directory");
                    Toast.makeText(getApplicationContext(),
                            "FAILED TO CREATE DIR", 0).show();
                    return null;
                }
            }
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
                    .format(new Date());
            mediaFile = new File(mediaStorageDir.getPath() + File.separator
                    + "SOUND_" + timeStamp + ".mp3");
            // Toast.makeText(getApplicationContext(), "FILE CREATION DONE",
            // 0).show();

        } else {
            Toast.makeText(getApplicationContext(), "NO SDCARD", 0).show();
        }
        return mediaFile;
    }

现在在下一个活动中如何从SD卡的特定文件夹中检索,即/ TAUKY / AUDIO 感谢

1 个答案:

答案 0 :(得分:1)

你的问题不是很清楚,但如果你想在SD卡中保存后播放该文件,你可以做类似的事情,因为你知道文件的路径。

FileDescriptor fd = null;
File baseDir = Environment.getExternalStorageDirectory();
String audioPath = baseDir.getAbsolutePath() + /TAUKY/AUDIO/SOUND_ + timeStamp + ".mp3";
FileInputStream fis = new FileInputStream(audioPath);
fd = fis.getFD();

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(fd);
mediaPlayer.prepare();
mediaPlayer.start();

我不是100%肯定,因为我无法测试它,但它应该是那样的。希望这会有所帮助。