Я пытаюсь записать звук с помощью класса MediaRecorder
в Android, сохранить его в файл и затем воспроизвести с помощью MediaPlayer
.
Здесь я выбираю файл, в котором хочу сохранить свой аудиофайл:
currentDate = Calendar.getInstance().getTime();
condensedDate = currentDate.toString().replaceAll("\\s", "")
fileName = getExternalCacheDir().getAbsolutePath();
fileName += File.separator + condensedDate + ".3gp";
и здесь я установил его как выходной файл для MediaRecorder
Recorder.setOutputFile(fileName);
Затем в другом Activity
я использую MediaPlayer
для воспроизведения этого файла аудио:
MediaPlayer player = new MediaPlayer();
try {
player.setDataSource(fileName);
player.prepare();
player.start();
} catch (IOException e) {
e.printStackTrace();
}
Здесь начинаются проблемы, ничего не воспроизводится, и это мой журнал:
09-09 14:31:38.887 1522-26066/? E/FileSource: Failed to open file '/storage/emulated/0/Android/data/com.mycompany.dbmeter.pro/cache/SunSep0914:31:19GMT+00:002018.3gp'. (Permission denied)
09-09 14:31:38.887 1522-26066/? E/GenericSource: Failed to create data source!
09-09 14:31:38.887 25996-26064/com.mycompany.dbmeter.pro E/MediaPlayerNative: error (1, -2147483648)
Это странно, потому что я пошагово следовал официальному образцу кода, который можно найти здесь .
Я попытался сделать мир файлов читаемым, как предлагалось в этом сообщении о переполнении стека .
Я также попробовал то, что было предложено здесь , но ничего не изменилось.
Что я делаю не так?