我正试图通过意图播放存储在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);
我不知道我哪里错了,我该怎么办。任何帮助将非常感激。谢谢:))
答案 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);