我正在尝试通过Android的MediaRecorder
类记录音频,将其保存到文件中,然后使用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)
这很奇怪,因为我按照官方示例代码的步骤进行操作,示例代码可以在这里找到。
我尝试按照这篇Stack Overflow文章中的建议,将文件设置为全局可读模式。
我还尝试了这里提出的建议,但是没有任何改变。
我做错了什么?
READ_EXTERNAL_STORAGE
,并且在应用程序中已经允许了此权限?这似乎是导致权限问题的原因。 - Beginner