2015-05-20 122 views
1

我得到的字符串路径如下抱歉,该视频无法播放

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

另一个类,我正在从列表排列,这些单个元素并将它传递给

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

+2

调试你的代码,看看你传递的意图。检查'list [index]' –

+0

list [index]从app文件夹返回文件的绝对路径。 – SimpleCoder

+0

视频文件有多大?这也可能是由于一个大的视频文件 - 至少是我自己体验到的。 – Darwind

回答

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