Как воспроизвести видео (.mp4) из ресурсов или необработанной папки с целью видео?

Как я могу воспроизвести видео в формате mp4 из моих ресурсов или необработанной папки с намерением видео?

что бы я ни пробовал, я всегда получаю:

06-25 14:32:14.070: E/AndroidRuntime(3070): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://mypackage/raw/myvideo }

Я пытался:

   Intent tostart = new Intent(Intent.ACTION_VIEW);

  String movieUrl = "file:///android_asset/myvideo.mp4";
  // String movieUrl = "android.resource://" + getPackageName() + "/raw/" + "myvideo.mp4";

   tostart.setDataAndType(Uri.parse(movieUrl), "video/*");
   startActivity(tostart);  

Я могу найти ответы только там, где люди используют видео с SD-карты, есть ли какой-нибудь вариант, чтобы я мог использовать папку raw или assets?


person Luciano    schedule 25.06.2012    source источник


Ответы (2)


Вы можете проанализировать URL-адрес видео из необработанной папки, используя это:

Uri.parse("android.resource://com.testvideo/" + R.raw.video);

затем попробуйте:

person Dhruvil Patel    schedule 25.06.2012
comment
@Luizje это работает? У меня такая же проблема. Я тестирую на LG G Pro android.content.ActivityNotFoundException: не найдена активность для обработки намерения - person Muhammad Usman; 19.08.2016

AssetFileDescriptor afd;

  try {
         afd = getAssets().openFd("videofile/video.3gp");
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

Здесь video.3gp — это файл в папке --- videofile -> это одна папка в папке с ресурсами

Используя медиаплеер, вы можете установить этот способ

mediaPlayer = new MediaPlayer();


 if(mediaPlayer.isPlaying()){
   mediaPlayer.reset();
  }

  mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  mediaPlayer.setDisplay(surfaceHolder);

  try {
      mediaPlayer.setDataSource(afd.getFileDescriptor(), afd
                .getStartOffset(), afd.getLength());

   mediaPlayer.prepare();
  } catch (IllegalArgumentException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IllegalStateException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  mediaPlayer.start();
person Nirali    schedule 25.06.2012
comment
Любой пример того, как использовать MediaPLayer? - person Luciano; 25.06.2012