我已经设置了一个名为 Say Sentence 的活动,当按下“Start Speaking”按钮时,该活动会记录用户的音频,然后在按下“Stop Speaking”按钮时停止录制。然后,它将文件保存在主应用程序文件夹中名为 SaySentence 的子目录中。我设法让我的代码工作,以便它保存一个名为 saysentence.3gpp 的音频文件,并在每次用户再次记录时替换它。
但是,我想设置它以便用户可以记录多个文件,也可以命名为saysentence001.3gpp,saysentence002.3gpp等。
这是我目前的活动:
public class SaySentence extends AppCompatActivity {
private MediaRecorder recorder;
private String OUTPUT_FILE;
private TextView mStatus;
private TextView mRecorded;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_say_sentence);
String sep = File.separator;
String newFolder = "SaySentence";
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File myNewFolder = new File(extStorageDirectory + sep + "AudioRecordingTest" + sep + newFolder);
myNewFolder.mkdir();
OUTPUT_FILE = Environment.getExternalStorageDirectory().toString()+ sep + "AudioRecordingTest" + sep + newFolder + sep + "saysentence.3gpp";
mStatus = (TextView) findViewById(R.id.txtStatus);
mRecorded = (TextView) findViewById(R.id.txtRecorded);
}
public void startSpeaking(View view) {
try {
beginRecording();
} catch (Exception e) {
e.printStackTrace();
}
}
public void stopSpeaking(View view) {
try {
stopRecording();
} catch (Exception e) {
e.printStackTrace();
}
}
private void beginRecording() {
ditchMediaRecorder();
File outFile = new File(OUTPUT_FILE);
mStatus.setText("Recording");
if(outFile.exists()){
outFile.delete();
}
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(OUTPUT_FILE);
try {
recorder.prepare();
} catch (Exception e) {
e.printStackTrace();
}
recorder.start();
}
private void stopRecording() {
mStatus.setText("Recording Stopped");
mRecorded.setText("Audio file saved to: " + OUTPUT_FILE);
if(recorder != null){
recorder.stop();
}
}
private void ditchMediaRecorder() {
if(recorder != null) {
recorder.release();
}
}
}
如何轻松实现该功能以允许我的应用程序记录和存储多个音频文件?
答案 0 :(得分:0)
您有两个选项可供选择
首先检查文件夹中的文件。计算文件数量,计数结果+1将是您的新文件名。
使用SharedPreferences。跟踪共享首选项中的文件数。