问题描述
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 (将#修改为@)