如何解决当文件保存在 Context.getExternalFilesDir 方法返回的路径中时,Android 视频播放器无法加载字幕
我需要为播放视频文件 (mp4) 创建一个 Intent
。在与视频文件相同的文件夹中是字幕文件(srt)。如果某些 Android 视频播放器位于同一路径且名称相同(仅文件扩展名不同),则它们会自动读取并显示字幕。如果路径为 /storage/emulated/0/videos
,则效果很好,如果路径为 /storage/emulated/0/Android/data/com.example.test/files/videos
,则无效,因为这是外部应用存储。
我想,由于使用了应用存储空间,视频播放器在访问字幕方面存在权限问题。
查看意图:
public Intent getViewIntent() {
Intent i = new Intent(Intent.ACTION_VIEW);
Uri uri = FileProvider.getUriForFile(ctx,ctx.packageName + ".provider",path) //path is path to mp4 file
i.setDataAndType(uri,"video/*");
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
return i;
}
使用者:
startActivity(Intent.createChooser(getViewIntent(),null));
文件提供者包含 <external-files-path name="external_app_specific" path="." />
,所以内容方案是:
视频文件content://com.example.test.provider/external_app_specific/video/testRec1.mp4
字幕文件content://com.example.test.provider/external_app_specific/video/testRec1.srt
如何授予视频播放器可读的字幕文件的权限?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。