Вот мой код записи приложения для записи звука Audio File во внутреннем хранилище, но я хочу хранить аудиофайлы во внешнем хранилище. Что я изменю и файлы хранить в SDCardмагазин Аудиофайлы в SdCard
Я делаю приложение записи, хранение аудио файлов в хранилище
public void recordVoiceCall(String phNumber, String name, String type) {
File LastingSalesRecordingsDir = new File(Environment.getExternalStorageDirectory(),
audioFileDirectoryPath);
if (!LastingSalesRecordingsDir.exists()) {
LastingSalesRecordingsDir.mkdirs();
}
file_name = "call_" + MyDateTimeStamp.getCurrentDate() + "_" +
MyDateTimeStamp.getCurrentTimeForFile() + "_" + type + "_" + phNumber + "_";
try {
audioFile = File.createTempFile(file_name, ".mp3", LastingSalesRecordingsDir);
} catch (IOException e) {
Log.d(MyLogTags.recording, "Recording IOException: " + e.getMessage());
e.printStackTrace();
}
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
try {
file_name = audioFile.getName();
if (recorder == null) {
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(audioFile.getAbsolutePath());
Log.d(MyLogTags.recording, "Recording output formats set.");
}
} catch (Exception e) {
Log.d(MyLogTags.recording, "Recording Exception: " + e);
}
try {
recorder.prepare();
Log.d(MyLogTags.recording, "Recording Recorder prepared.");
} catch (IllegalStateException e) {
deleteVoiceFile(file_name);
Log.d(MyLogTags.recording, "Recording prepare IllegalStateException: " + e);
} catch (IOException e) {
deleteVoiceFile(file_name);
Log.d(MyLogTags.recording, "Recording prepare IOException: " + e);
}
try {
String state = Environment.getExternalStorageState();
if (!state.equals(Environment.MEDIA_MOUNTED)) {
Log.d(MyLogTags.recording, "SD Card is not mounted. It is " + state + ".");
throw new IOException("SD Card is not mounted. It is " + state + ".");
}
recorder.start();
Log.d(MyLogTags.recording, "Recording Recorder started for: " + phNumber);
recordStarted = true;
} catch (Throwable e) {
deleteVoiceFile(file_name);
Log.d(MyLogTags.recording, "Recording start Exception: " + e);
}
}
'Environment.getExternalStorageDirectory()'. Это уже внешняя память. Не SD-карта. Единственное, что вам нужно - это объект File или файл на SD-карте. Как только у вас есть, остальная часть вашего кода будет одинаковой. Вы также должны понимать, что на современных устройствах Android ваше приложение не может писать на SD-карту. Только читать. Я не знаю, может ли там записываться медиарекордер. – greenapps
@greenapps Возможно ли хранить файлы аудиозаписи во внешнем хранилище sdcard? – Ahmad
@greenapps Я занимаюсь записью Android и записываю тот же код, он будет хранить данные во внутренней памяти, но не в SdCard – Ahmad