从android内部存储播放视频

时间:2014-11-27 07:28:40

标签: android android-intent video

我正试图通过意图播放存储在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);

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

2 个答案:

答案 0 :(得分:11)

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

fileWithinMyDir.setReadable(true, false);

现在这里是从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);

答案 1 :(得分:0)

此代码适用于我:

Uri fileUri = Uri.fromFile(new File(String file_path));
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(fileUri, URLConnection.guessContentTypeFromName(fileUri.toString()));
startActivity(intent);