Я хочу воспроизвести видео из моих активов или исходной папки

Я хочу воспроизвести видео из своих активов или сырой папки в своем приложении на Android используя VideoView Я получаю сообщение об ошибке, так как видео нельзя воспроизвести пожалуйста, любой дай мне решение.

Вот код, который я использовал

VideoView vd = (VideoView)findViewById(R.id.Video);         
Uri uri = Uri.parse("android.resource:"  + R.raw.video);
MediaController mc = new MediaController(this);
vd.setMediaController(mc);
vd.setVideoURI(uri); 
vd.start();

Ответ 1

Несколько замечаний:

  • Вы должны скопировать видео в свою проектную папку res/raw.
  • Он должен быть в поддерживаемом формате (3gp, wmv, mp4) и назван в нижнем регистре, численном выражении, подчеркиваниях и точках в имени файла: my_video_file.mp4
  • Когда вы работаете с этим ресурсом в коде, вы будете ссылаться на сгенерированную статику R - у него будет удалено расширение файла: R.raw.my_video_file
  • Класс Activity имеет вспомогательный метод getPackageName(), который может использоваться вашим кодом при построении правильного URI для вашего видео.
VideoView vv = (VideoView)this.findViewById(R.id.videoView)
String uri = "android.resource://" + getPackageName() + "/" + R.raw.my_video_file;
vv.setVideoURI(Uri.parse(uri));
vv.start();

Более подробная информация об этом здесь.

Ответ 2

Вы должны указать имя пакета в uri:

  Uri uri = Uri.parse("android.resource://[package]/raw/video")

или

  Uri uri = Uri.parse("android.resource://[package]/"+R.raw.video);

Кроме того, ознакомьтесь с этими примерами.

Ответ 3

В VideoView есть много способов ошибиться! В основном потому, что logcat не дает вам никакой помощи, всегда давая ошибку UNKNOWN.

Я нашел эту ссылку, безусловно, лучшим способом начать... Полное описание, чтобы вы не ошибетесь. Спасибо автору...

http://androidexample.com/Play_Video_File_-_Android_Example/index.php?view=article_discription&aid=124&aaid=144

Ответ 4

Когда мы включаем видео ресурс в /resource/raw/ или assets/, по умолчанию он ищет формат .mp4, он не будет принимать файлы .wmv. Если вы читаете видеофайл из внешних местоположений (например: /mnt/sdcard/demo.wmv), он будет их принимать.

Ответ 5

Try:

   AssetFileDescriptor afd = getAssets().openFd(fileName);
   player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength());

Ответ 6

Обязательно запишите имя файла видео без расширения.