【发布时间】:2020-02-03 03:16:26
【问题描述】:
我正在尝试录制视频并将其存储在 DCIM 目录中
我曾尝试使用 MediaStore,但问题是媒体存储返回 Uri,而 MediaRecorder 获取文件、FileDescreptor 或文件路径,而我没有任何这些选项,所以我尝试将 Uri 转换为 FileDescreptor,如下所示 resolver.openFileDescriptor(uri!!, "rw")?.fileDescriptor但异常发生java.lang.RuntimeException: Error retrieving camcorder profile params
private fun setUpTimeLapseMediaRecorder(): MediaRecorder {
val resolver = context.contentResolver
val contentValues = ContentValues()
val videoName = "time_lapse_video_" + System.currentTimeMillis() + ".mp4"
val directoryName = "${Environment.DIRECTORY_DCIM}"
val filePath = "${directoryName}Videos${File.separator}$videoName"
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, filePath)
val uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentValues)
val timeLapseMediaRecorder = MediaRecorder()
timeLapseMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE)
timeLapseMediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_TIME_LAPSE_720P))
timeLapseMediaRecorder.setOutputFile(/* How i can get file path from media store?*/)
timeLapseMediaRecorder.setVideoFrameRate(60)
timeLapseMediaRecorder.setCaptureRate(1.8)
timeLapseMediaRecorder.prepare()
return timeLapseMediaRecorder
}
如何将 MediaStore 与 MediaRecorder 一起使用
【问题讨论】:
-
参考这个问题可能对你有帮助:stackoverflow.com/questions/3401579/…
标签: android android-mediarecorder