问题描述
我需要为播放视频文件 (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 (将#修改为@)