web-dev-qa-db-fra.com

Comment lire un fichier vidéo sous Android?

Je suis placé vidéo MP4 à mon espace de domaine. J'ai son URL publique, maintenant je veux y jouer dans mon application Android; mais je ne sais pas comment puis-je faire cela. J'ai utilisé le code suivant qui ne fonctionne pas. Le contrôleur de piste bouge mais je ne vois aucune vidéo à l'écran.

public class MPlayer extends Activity{
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.playvideo);
    VideoView videoView = new VideoView(MPlayer.this);
    videoView.setMediaController(new MediaController(this));
    videoView.setVideoURI(Uri.parse("http://www.semanticdevlab.com/abc.mp4"));
    videoView.requestFocus();
    videoView.start();
    LinearLayout l = (LinearLayout)findViewById(R.id.mplayer);
    l.addView(videoView);
}
}
14
zeeshan

La plupart du temps, j'utilise le code suivant:

MediaPlayer mp = new MediaPlayer();
    mp.setDataSource(PATH_TO_FILE);
    mp.prepare();
    mp.start();

pour plus d'informations, consultez cette page: http://developer.Android.com/guide/topics/media/index.html et http://developer.Android.com/ ressources/exemples/ApiDemos/src/com/exemple/Android/apis/media/MediaPlayerDemo_Video.html

7
Hesam

La classe VideoView peut charger des images provenant de différentes sources (telles que des ressources ou des fournisseurs de contenu), s’occupe de calculer ses mesures à partir de la vidéo afin de pouvoir les utiliser dans n’importe quel gestionnaire de disposition et offre diverses options d’affichage telles que la mise à l’échelle et la teinte.

Code:

videoView = (VideoView)findViewById(R.id.ViewVideo);
videoView.setVideoURI(Uri.parse(“Android.resource://” + getPackageName() +”/”+R.raw.video));
videoView.setMediaController(new MediaController(this));
videoView.requestFocus();
videoView.start();

si vous voulez voir le code source: Lire le fichier vidéo avec VideoView sous Android

14
AndroidLover

Je pense que cela peut vous aider à trouver une solution. 

mp=new MediaPlayer();                    
mp.setDataSource(path);
mp.setScreenOnWhilePlaying(true);
mp.setDisplay(holder);
mp.prepare();
mp.start();
6
JKV

Si vous essayez ceci dans votre émulateur, vous devrez peut-être l'essayer dans un vrai périphérique, parce que parfois j'utilise aussi le même problème. Je ne pourrai pas visionner la vidéo dans l'émulateur, mais la vidéo sera lue sans problème dans le mobile. le problème est, je pense avec l'émulateur, pas avec votre code.

3
Andro Selva

Vous devriez le faire dans onResume, car dans onCreateVideoView ne connaît pas sa taille et ne peut pas créer correctement la surface pour afficher la vidéo.

public class MPlayer extends Activity{

VideoView videoView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.playvideo);
    videoView = new VideoView(MPlayer.this);
    videoView.setMediaController(new MediaController(this));
    LinearLayout l = (LinearLayout)findViewById(R.id.mplayer);
    l.addView(videoView);
   }

    @Override
    protected void onResume() {
        super.onResume();
videoView.setVideoURI(Uri.parse("http://www.semanticdevlab.com/abc.mp4"));
        videoView.start();
}
0
Dmitry