Quelle est la différence entre MediaPlayer et VideoView sous Android

95

Je me demandais s'il y avait une différence entre eux en matière de streaming de vidéos.

Je sais qu'il VideoViewpeut être utilisé pour le streaming et à quoi ça sert Mediaplayer? Autant que je sache, MediaPlayerpouvez-vous faire la même chose VideoView?

Quelqu'un peut-il me donner la réponse?

Et si je veux diffuser de la vidéo depuis le serveur en utilisant RTSP vers Android, avec lequel dois-je commencer? VideoViewou MediaPlayer?

Toute suggestion?

oattie
la source
Ne devrait-il pas être sur superutilisateur?
Quamis
13
Je pense qu'il appartient ici. N'est-ce pas une question de programmation Android?
juell

Réponses:

40

Je posais la même question et d'après ce que j'ai compris de ce que Mark (CommonsWare) a conseillé sur de nombreux threads ici, VideoView est un wrapper (200 cents lignes de code) pour MediaPlayer et SurfaceView pour fournir des contrôles intégrés.

Il a également aimablement partagé quelques exemples:

https://github.com/commonsguy/cw-advandroid/blob/master/Media/Video/src/com/commonsware/android/video/VideoDemo.java

https://github.com/commonsguy/vidtry/blob/master/src/com/commonsware/android/vidtry/Player.java

et exemple d'Android sdk http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

Certaines personnes ont également eu des problèmes pour lire la vidéo sur l'émulateur, alors assurez-vous de la tester sur un appareil réel si vous rencontrez des problèmes

Michkine
la source
17

VideoView est essentiellement une vue liée à un MediaPlayer pour faciliter la mise en œuvre de vidéos dans votre application. Si vous ne faites pas beaucoup de travail personnalisé, VideoView est la solution.

Cela dit, vous pouvez également transmettre le lien RTSP au système pour utiliser l'application la plus appropriée pour lire la vidéo, ce qui est encore plus facile à faire:

String url = "rtsp://yourrtsplink.com/blah";
Uri uri = Uri.parse(url);
startActivity(new Intent(Intent.ACTION_VIEW, uri));

La vidéo doit être testée sur un périphérique, car la lecture de l'émulateur est médiocre, et vous devez également savoir que RTSP nécessite l'ouverture d'un port supplémentaire, ce qui est bloqué par certains pare-feu.

Ian G. Clifton
la source
lequel est le plus rapide?
Albert Chen
0

VideoPlayer est un wrapper pour MediaPlayer et SurfaceView, il est plus facile d'implémenter un lecteur vidéo avec VideoView qu'avec un MediaPlayer, si les fichiers vidéo sont stockés dans le stockage interne de l'application, utilisez le fournisseur de contenu ou stockez-les comme lisibles par le monde, sinon il le sera ne fonctionne pas

HocineHamdi
la source