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?


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


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.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.