如何解决如何将 VideoCapture 设置为应用程序本地存储
我有一个使用 CameraX 来录制视频的应用。当我将输出位置设置为正常的外部照片库位置时,一切正常。例如:
val outputFileOptions = VideoCapture.OutputFileOptions.Builder(
this.contentResolver,MediaStore.Video.Media.EXTERNAL_CONTENT_URI,//Use this to save in normal Gallery
contentValues
).build()
videoCapture?.startRecording(
outputFileOptions,cameraExecutor,object : VideoCapture.OnVideoSavedCallback {
override fun onVideoSaved(outputFileResults: VideoCapture.OutputFileResults) {
Timber.i("onVideoSaved outputFileResults: $outputFileResults")
}
override fun onError(videoCaptureError: Int,message: String,cause: Throwable?) {
cause?.printStackTrace()
Timber.e("onError message: $message cause: $cause")
}
})
...会工作得很好。
当我尝试使用应用程序本地位置设置它时,虽然它崩溃了: java.lang.IllegalArgumentException: Unknown URL file:///data/user/0/com.company.appname/files/VIDEO_20210228_153240.mp4
现在,该文件非常适合其他用途,例如将其作为输出位置提供给 MediaRecorder。
我就是这样做的:
val file = createVideoFile() //Creates the file mentioned above
val uri = file.toUri()
val outputFileOptions = VideoCapture.OutputFileOptions.Builder(
this.contentResolver,uri,contentValues
).build()
有人知道我做错了什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。