尽管有效的文件路径,ThumbnailUtils.createVideoThumbnail崩溃
这个时间浪费了这么多,所以寻找一些帮助。 我已经有这个代码工作之前,所以真的难倒了。 我正在检查文件是否存在,但它仍然没有喜悦。 我有
var vidIntent = Intent(MediaStore.ACTION_VIDEO_CAPTURE) var g1 = UUID.randomUUID() var vidFileName = "$g1.mp4" _videoFileList.add(vidFileName) var videoFileDir = Environment.getExternalStoragePublicDirectory(android.os.Environment.DIRECTORY_MOVIES) var vidFile = File(videoFileDir, vidFileName) _capturedVideoPath = vidFile.absolutePath vidIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(vidFile)) vidIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 10) startActivityForResult(vidIntent, 0)
然后处理结果:
if (!_capturedVideoPath.isBlank()){ println("video captured at $_capturedVideoPath") if (!File(_capturedVideoPath).exists()){ throw Exception("File at $_capturedVideoPath does not exist") } var thumbBmp : Bitmap = ThumbnailUtils.createVideoThumbnail(_capturedVideoPath, MediaStore.Video.Thumbnails.MINI_KIND)
总是导致以下崩溃(在真实设备上测试):
E/ExceptionHandler: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { dat=file:///storage/emulated/0/Movies/084ea076-995f-4818-9536-4a9184167ccf.mp4 flg=0x1 (has extras) }} to activity {com.reels.videocapture/com.example.live.videocapture.ShootVideoActivity}: java.lang.IllegalStateException: ThumbnailUtils.createVid…deo.Thumbnails.MINI_KIND) must not be null at android.app.ActivityThread.deliverResults(ActivityThread.java:3730) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3773) at android.app.ActivityThread.access$1400(ActivityThread.java:165) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1418) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5546) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682) Caused by: java.lang.IllegalStateException: ThumbnailUtils.createVid…deo.Thumbnails.MINI_KIND) must not be null at com.example.live.videocapture.ShootVideoActivity.onActivityResult(ShootVideoActivity.kt:97) at android.app.Activity.dispatchActivityResult(Activity.java:6597) at android.app.ActivityThread.deliverResults(ActivityThread.java:3726)
对于任何其他谁来到这里,这是在SDK 23的权限。
我不得不从外部存储请求读取权限才能工作。 不要在这样一个成熟的平台上留下深刻印象的错误信息!
- 在Instant App中应用插件“kotlin-android”会导致“null不能转换为非空类型的com.android.build.gradleBasePlugin”
- 使用Kotlin进行数据绑定会导致Resources $ NotFoundException
- android anko alert自定义布局currentFocus
- 只有安全(?)或非空断言(!!)的电话才可以在一个可为空的接收器上
- 处理注释时发生了一些错误
- Kotlin编程语言的静态分析工具?
- Android Firestore微调不加载我的文档
- fromCallable中的RXjava2方法不尽人意
- SonarQube:如何将多个质量配置文件应用于一个项目?