【发布时间】:2021-02-26 23:28:39
【问题描述】:
在 Android 11 上,我的 MediaRecorder 无法初始化。我怀疑这个问题与范围存储有关,但我一直无法找出原因。我正在使用 MediaRecorder 从麦克风录制音频。我从音频中提取幅度,所以我无意保留文件,这就是为什么路径是 /dev/null
var mRecorder: MediaRecorder? = null
if (mRecorder == null) {
mRecorder = MediaRecorder()
mRecorder!!.setAudioSource(MediaRecorder.AudioSource.MIC)
mRecorder!!.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
mRecorder!!.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)
mRecorder!!.setOutputFile("/dev/null")
try {
mRecorder!!.prepare()
} catch (ioe: IOException) {
Log.e("[Monkey]", "IOException: " + Log.getStackTraceString(ioe))
} catch (e: SecurityException) {
Log.e("[Monkey]", "SecurityException: " + Log.getStackTraceString(e))
}
try {
mRecorder!!.start()
} catch (e: SecurityException) {
Log.e("[Monkey]", "SecurityException: " + Log.getStackTraceString(e))
}
崩溃发生在 MediaRecorded.start()。 /dev/null 在 Android 11 上不是有效路径吗?
Logcat:
start failed: -1004
2020-11-15 10:51:41.827 11836-11836/= E/AndroidRuntime: FATAL EXCEPTION: main
Process: c=, PID: 11836
java.lang.RuntimeException: start failed.
at android.media.MediaRecorder.start(Native Method)
【问题讨论】:
标签: android kotlin mediastore