抱歉,这部影片无法播放

Sorry, this video can not be played

我得到的字符串路径如下

File f = new File(
        Environment.getExternalStoragePublicDirectory(File.separator),
        "abc");
File file[] = f.listFiles();

然后将此文件数组转换为字符串数组。

list = new String[file.length];
for (int i = 0; i < file.length; i++) {
    list[i] = file[i].getAbsolutePath();
}

现在在另一个 class 中,我从列表数组中获取这些单独的元素并将其传递给

intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("file://" + list[index]));

String ext = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);

Log.d(TAG,"type  = "+type);
intent.setType(type);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);

从上面的代码我得到 "Sorry, this video can not be played" 错误。 我在这里尝试了很多帖子,但都没有成功。请帮助解决这个问题。

以下代码对我有用。如果有人解释差异,那将非常有帮助。

String filePath = data[position];
    Log.d(TAG,"onclick of item position = "+position+" filepAth = "+filePath);
    File file = new File(filePath);
    Log.d(TAG,"file = "+file);
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);

    String ext = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
    String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);

    Log.d(TAG,"type  = "+type);
   intent.setDataAndType(Uri.fromFile(file), type);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    mContext.startActivity(intent);