android - studio - ¿Cómo cargar videos desde la carpeta de activos?(Para jugar con VideoView)
reproductor de video para android codigo fuente (3)
Necesito abrir un video mp4 desde la carpeta de activos y reproducirlo con VideoView.
Probé con estas dos opciones, pero ninguna de ellas funciona ...
mVideoView.setVideoPath("file:///android_asset/videos.mp4");
mVideoView.requestFocus();
mVideoView.start();
y...
String uriPath = "file:///android_asset/videos.mp4";
Uri uri = Uri.parse(uriPath);
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();
Estas opciones no funcionaron, pero si intento abrir el video desde la tarjeta SDCARD funciona perfectamente, entonces el problema es cuando intento cargar el video desde la carpeta de activos.
¿Qué estoy haciendo mal?
Gracias
No es posible reproducir el archivo .mp4 desde /assets
, debe cargarlo desde /raw
carpeta /raw
.
Ejemplo:
Si tiene un archivo llamado video.mp4
dentro de la carpeta /raw
:
String fileName = "android.resource://"+ getPackageName() + "/raw/video";
VideoView vv = (VideoView) this.findViewById(R.id.surface);
vv.setVideoURI(Uri.parse(fileName));
vv.start();
No sé cómo cargar videos desde la carpeta de activos. Pero sé cómo cargarlos desde la carpeta / res / raw /:
String uriPath = "android.resource://yourapplicationpackage/raw/videofilenamewithoutextension";
Uri uri = Uri.parse(uriPath);
video.setVideoURI(uri);
Editado
Tratar:
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();}