0
我已經設置了一項活動,名爲說句,當按下「開始說話」按鈕時錄製用戶的音頻,然後在按下「停止說話」按鈕時停止錄製。然後將該文件保存在名爲的Say目錄的子目錄中,該目錄位於主應用程序的文件夾中。我設法讓我的代碼正常工作,以便它可以保存一個名爲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();
}
}
}
如何輕鬆實現該功能以允許我的應用程序記錄和存儲多個音頻文件?
如何使用SharedPreferences? – FlameDra