J'ai besoin d'ouvrir une vidéo mp4 à partir du dossier d'actifs et de la lire avec VideoView.
J'ai essayé avec ces deux options, mais aucune ne fonctionne ...
mVideoView.setVideoPath("file:///Android_asset/videos.mp4");
mVideoView.requestFocus();
mVideoView.start();
et...
String uriPath = "file:///Android_asset/videos.mp4";
Uri uri = Uri.parse(uriPath);
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();
Ces options n'ont pas fonctionné, mais si j'essaie d'ouvrir la vidéo à partir de la carte SDC, cela fonctionne parfaitement, alors, le problème est lorsque j'essaie de charger la vidéo à partir du dossier des ressources.
Qu'est-ce que je fais mal?
merci
Je ne sais pas comment charger des vidéos depuis le dossier des ressources. Mais je sais comment les charger depuis le dossier/res/raw /:
String uriPath = "Android.resource://yourapplicationpackage/raw/videofilenamewithoutextension";
Uri uri = Uri.parse(uriPath);
video.setVideoURI(uri);
\assets
n'est pas possible, vous devez le charger depuis \raw
dossier.Exemple:
si vous avez un fichier appelé video.mp4
à l'intérieur de /raw
dossier:
String fileName = "Android.resource://"+ getPackageName() + "/raw/video";
VideoView vv = (VideoView) this.findViewById(R.id.surface);
vv.setVideoURI(Uri.parse(fileName));
vv.start();
MODIFIÉ
Essayer:
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();}