Я хочу воспроизвести видео из моих активов или исходной папки
Я хочу воспроизвести видео из своих активов или сырой папки в своем приложении на 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
Обязательно запишите имя файла видео без расширения.