如何在一个应用程序中保存 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")
,而不是使用字符串连接)
我想保存在第一个 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")
,而不是使用字符串连接)