VideoView不会从内部存储加载视频

问题描述

VideoView不会从内部存储加载视频。我先将此视频的副本保存到内部存储中,然后再尝试使用setVideoURI()加载视频时,没有任何反应。

setVideoURI的代码

val videoUri = FileProvider.getUriForFile(mContext,"com.bruhascended.sms.fileProvider",File(path))
mContext.grantUriPermission("com.bruhascended.sms",videoUri,Intent.FLAG_GRANT_READ_URI_PERMISSION)
video.setVideoURI(videoUri)

将文件保存到内部存储器的代码。

fun saveMedia(date: Long): String {
    val name = date.toString() + "." + MimeTypeMap.getSingleton().getExtensionFromMimeType(typeString)
    val destination = File(mContext.filesDir,name)
    val output: OutputStream = FileOutputStream(destination)
    val input = mContext.contentResolver.openInputStream(uri)!!
    val buffer = ByteArray(4 * 1024)
    var read: Int
    while (input.read(buffer).also { read = it } != -1) {
        output.write(buffer,read)
    }
    output.flush()
    return destination.toString()
}

清单中的文件提供程序

<provider
       android:name="androidx.core.content.FileProvider"
       android:authorities="com.bruhascended.sms.fileProvider"
       android:exported="false"
       android:grantUriPermissions="true">
       <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS" 
            android:resource="@xml/file_paths" />
</provider>

最后是file_paths.xml

<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="media" path="."/>
</paths>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...