抱歉,这部影片无法播放

时间:2015-05-20 16:31:19

标签: android video playback

我的字符串路径如下

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

然后将此文件数组转换为String数组。

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

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

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"错误。 我在这里尝试过很多帖子但是没能成功。请帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

以下代码为我工作。如果任何人解释差异,它会非常有用。

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);