如何在一个应用程序中保存 mp3 录音并在另一个 Activity 中播放录音

How Can I Save an mp3 recording in one Applicaton and Play Back Recording in Another Acitiviy

我想保存在第一个 activity 中录制的录音,然后在我的 Android 应用程序中播放第二个 activity 中的录音。我想我拥有一切,但我似乎无法找到一种方法来保存第一个 activity,然后能够在第二个 activity 中访问它。

现在,应用程序崩溃了,因为它找不到文件。我将包含第一个和第二个 activity 的部分内容以供审核。

这是设置文件路径的第一个Activity

 try{
    Log.i(log_tag,"Setting the recorder");
    speaker_recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    speaker_recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    speaker_recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        speaker_recorder.setOutputFile(getFilesDir().getAbsolutePath() + "/audio_test.3gp");

    } catch(Exception e){
        Log.e(log_tag,"Recording Settings Failed");
        createTempFile("Status.txt", "COMPLETED-RECORDER FAILED");
    }
    //Prepare the Recorder
    try{
        Log.i(log_tag,"Preparing the Recorder");
        speaker_recorder.prepare();
    } catch(Exception e){
        Log.e(log_tag,"Recording failed");
        createTempFile("Status.txt", "COMPLETED-RECORDER FAILED");
        exit_function();
    }

这是从播放文件的第二个Activity开始的

    private void playSound(boolean speakers) {
        mContext = getApplicationContext();
        mFile = "files" + "/audio_test.3gp";
        audioManager.setSpeakerphoneOn(true);
        try {
            mp.setDataSource(mFile);
        } catch (IOException e) {
            e.printStackTrace();

在您的第一个 activity 中,您有:

getFilesDir().getAbsolutePath() + "/audio_test.3gp"

在你的第二个 activity 中,你有:

"files" + "/audio_test.3gp";

这些不一样。此外,第二个是不正确的。更改第二个 activity 以使用与第一个 activity.

中相同的逻辑来导出路径

(或者,更好的是,在两个地方都使用 new File(getFilesDir(), "audio_test.3gp"),而不是使用字符串连接)