微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当文件保存在 Context.getExternalFilesDir 方法返回的路径中时,Android 视频播放器无法加载字幕

如何解决当文件保存在 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 举报,一经查实,本站将立刻删除。