【问题标题】:How to get actual path to video from onActivityResult如何从 onActivityResult 获取视频的实际路径
【发布时间】:2015-09-30 23:21:20
【问题描述】:

我有一个视频保存到.../Movies/MyApp/abcde.mp4。所以我知道它在哪里。当我使用对ACTION_GET_CONTENT 的隐式意图通过我的应用程序加载它时,当我这样做时,路径将返回为content:/media/external/video/media/82

data.getData().toString()

该路径的问题是当我尝试使用 MediaRecorder as 访问它时它可以工作

mVideoView.setVideoURI(Uri.parse(mVideoStringPath))

但是,如果我尝试将其转换为另一个线程中的路径(对于作业队列),则找不到该文件

new File(mVideoStringPath)

当我使用How to get file path in onActivityResult in Android 4.4 中描述的技术(复制和粘贴)时,仍然出现错误

java.lang.RuntimeException: Invalid image file

另外根据我的记录,新技术将视频的路径显示为

video path: /storage/emulated/0/Movies/MyApp/abc de.mp4

注意abc de.mp4 中的空格。这确实是文件的名称。而且手机的拍照app玩起来也没有问题

【问题讨论】:

    标签: android video uri filepath


    【解决方案1】:

    但是,如果我尝试将其转换为另一个线程中的路径(对于作业队列),则找不到该文件

    那是因为它不是文件的路径。它是一个Uri,它是一些数据的不透明句柄。

    如何从 onActivityResult 获取视频的实际路径

    你没有。您使用UriUri 不要求指向文件。如果Uri 恰好代表一个文件,则不需要代表您可以直接访问文件系统的文件。

    【讨论】:

      【解决方案2】:

      您需要转义文件路径的空间以便从中构造一个 File 对象。

      filepath.replace(" ", "\\ "); 
      

      【讨论】:

        猜你喜欢
        • 2018-03-27
        • 2018-04-09
        • 2017-05-28
        • 1970-01-01
        • 2016-01-21
        • 2016-10-12
        • 2019-08-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多