2015-05-20 1 views
1

Я получаю строку путь, как показано нижеК сожалению, это видео не может быть воспроизведено

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

Теперь в другом классе, я получаю эти отдельные элементы из списка массива и передавая его

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] возвращает абсолютное значение файла из папки приложения. – SimpleCoder

+0

Насколько велик видеофайл? Это также может быть связано с большим видеофайлом - это, по крайней мере, то, что я испытал сам. – Darwind

ответ

0

Следующий код работал для меня. Будет очень полезно, если кто-нибудь объяснит diff.

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

 Смежные вопросы

  • Нет связанных вопросов^_^