我想保存在第一个活动中制作的录音,然后在我的Android应用中的第二个活动中播放录音。我想我拥有一切,但我似乎无法找到一种方法来保存第一个活动,然后能够在第二个活动中访问它。
现在,应用程序崩溃了,因为它无法找到该文件。我将包括第一和第二项活动的部分内容以供审核。
这是来自设置文件路径的第一个活动
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();
}
这是来自播放文件的第二个活动
private void playSound(boolean speakers) {
mContext = getApplicationContext();
mFile = "files" + "/audio_test.3gp";
audioManager.setSpeakerphoneOn(true);
try {
mp.setDataSource(mFile);
} catch (IOException e) {
e.printStackTrace();
答案 0 :(得分:0)
在您的第一项活动中,您有:
getFilesDir().getAbsolutePath() + "/audio_test.3gp"
在你的第二项活动中,你有:
"files" + "/audio_test.3gp";
这些不一样。此外,第二个是不正确的。更改第二个活动以使用相同的逻辑来导出您在第一个活动中使用的路径。
(或者,更好的是,在两个地方使用new File(getFilesDir(), "audio_test.3gp")
,而不是使用字符串连接)