Как загрузить видео из папки с ресурсами? (Чтобы воспроизвести их с помощью VideoView)

Мне нужно открыть mp4-видео из папки с ресурсами и воспроизвести его с помощью VideoView.

Я пробовал эти два варианта, но никто из них не работает …

mVideoView.setVideoPath("file:///android_asset/videos.mp4"); mVideoView.requestFocus(); mVideoView.start(); 

а также…

 String uriPath = "file:///android_asset/videos.mp4"; Uri uri = Uri.parse(uriPath); mVideoView.setVideoURI(uri); mVideoView.requestFocus(); mVideoView.start(); 

Эти параметры не работали, но если я попытаюсь открыть видео из SDCARD, он отлично работает, тогда проблема в том, что я пытаюсь загрузить видео из папки с ресурсами.

Что я делаю неправильно?

благодаря

Solutions Collecting From Web of "Как загрузить видео из папки с ресурсами? (Чтобы воспроизвести их с помощью VideoView)"

Я не знаю, как загружать видео из папки с ресурсами. Но я знаю, как их загрузить из папки / res / raw /:

 String uriPath = "android.resource://yourapplicationpackage/raw/videofilenamewithoutextension"; Uri uri = Uri.parse(uriPath); video.setVideoURI(uri); 

Воспроизведение файла .mp4 из \assets невозможно, вы должны загрузить его из папки \raw .

Пример:

Если у вас есть файл с именем video.mp4 внутри папки /raw :

 String fileName = "android.resource://"+ getPackageName() + "/raw/video"; VideoView vv = (VideoView) this.findViewById(R.id.surface); vv.setVideoURI(Uri.parse(fileName)); vv.start(); 

РЕДАКТИРОВАНИЕ

Пытаться:

 this.setContentView(R.layout.videoview); mVideoView = (VideoView) this.findViewById(R.id.surface_view); SurfaceHolder holder = mVideoView.getHolder(); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); MediaPlayer player = new MediaPlayer(); player.setDisplay(holder); AssetFileDescriptor afd; try { afd = getAssets().openFd("v.mp4"); player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength()); player.prepareAsync(); player.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); } }); } catch (Exception e) { e.printStackTrace();}