У меня есть приложение, которое записывает и сохраняет аудио на SD-карте. Он записывает и сохраняет его в нужном месте, но сохраняет его как android.widget.EditText@random number. Я использовал EditText, чтобы получить имя файла.
Кто-нибудь знает, как я могу позволить пользователю ввести некоторый текст и сохранить файл как таковой? Я думал, что я на что-то с кодом ниже, но нет ...
try {
//Set user input as filename
String filename = getInput.toString();
// set the storage directory to SDcard
File storageDir = new File(Environment.getExternalStorageDirectory(), "audio");
storageDir.mkdir();
Log.d(APP_TAG, "Storage directory set to " + storageDir);
outfile = File.createTempFile(filename, ".3gp", storageDir);
//show filename
System.out.println("File is: "+outfile.getAbsolutePath());
// initiate recorder
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(outfile.getAbsolutePath());
} catch (IOException e) {
Log.w(APP_TAG, "File not accessible ", e);
} catch (IllegalArgumentException e) {
Log.w(APP_TAG, "Illegal argument ", e);
} catch (IllegalStateException e) {
Log.w(APP_TAG, "Illegal state, call reset/restore", e);
}
startRecord();
} else {
stopRecord();
вот мой обновленный код:
//set filename to user input
String filename = getInput.getText().toString()+".3gp";
// show filename
System.out.println("File is: " + filename);
// initiate recorder
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setOutputFile("/sdcard/audio/"+filename);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
player.setDataSource(filename);