从android内部存储播放视频

Tas*_*zbi 3 video android android-intent

我正试图通过意图播放存储在android内存中的视频文件.文件存在那里,但当我尝试通过意图播放它时,它会给我错误"媒体文件不支持"或"无法播放视频",具体取决于设备.我找不到我错的地方.这是我的代码

File mydir = activity.getDir("Videos", Context.MODE_PRIVATE);
File fileWithinMyDir = new File(mydir, filename);
String videoResource = fileWithinMyDir.getPath();
Uri intentUri = Uri.parse(videoResource);

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(intentUri, "video/mp4");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

我不知道我哪里错了,我该怎么办.任何帮助将非常感激.谢谢 :)

Tas*_*zbi 11

非常感谢各位朋友的参与,非常感谢您的努力.我发现了问题的解决方案.在播放之前需要将文件读取设置为true.

fileWithinMyDir.setReadable(true, false);
Run Code Online (Sandbox Code Playgroud)

现在这里是从android的内部存储播放mp4视频的完整意图代码.

File mydir = activity.getDir("Videos", Context.MODE_PRIVATE);
File fileWithinMyDir = new File(mydir, headingsList.get(mPosition));
fileWithinMyDir.setReadable(true, false);
String videoResource = fileWithinMyDir.getPath();
Uri intentUri = Uri.fromFile(new File(videoResource));

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(intentUri, "video/mp4");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)