Я хочу воспроизвести видео из моих ресурсов или из папки raw - PullRequest
14 голосов
/ 19 сентября 2010

Я хочу воспроизвести видео из моих ресурсов или из папки raw в моем приложении на 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();

Ответы [ 6 ]

33 голосов
/ 01 февраля 2011

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

  1. Вы должны скопировать видео в папку res / raw вашего проекта.
  2. Он должен быть в поддерживаемом формате (3gp, wmv, mp4) и иметь имя в нижнем регистре, цифры, подчеркивания и точки в имени файла: my_video_file.mp4
  3. Когда вы работаете с этим ресурсом в коде, вы будете ссылаться через сгенерированную статику R - у него будет удалено расширение файла: R.raw.my_video_file
  4. Класс 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();

Подробнее об этом можно узнать здесь .

7 голосов
/ 19 сентября 2010

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

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

или

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

Также ознакомьтесь с этими примерами .

2 голосов
/ 27 марта 2014

Есть много способов ошибиться с VideoView! Главным образом потому, что logcat не помогает, всегда выдает ошибку UNKNOWN.

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

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

0 голосов
/ 19 декабря 2013

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

0 голосов
/ 11 ноября 2013

Попробуйте:

   AssetFileDescriptor afd = getAssets().openFd(fileName);
   player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength());
0 голосов
/ 08 марта 2013

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

...