web-dev-qa-db-fra.com

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

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

Je sais que VideoView peut être utilisé pour le streaming et à quoi sert Mediaplayer? Pour autant que je sache, MediaPlayer peut faire la même chose que VideoView non?

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, par lequel dois-je commencer? VideoView ou MediaPlayer?

Toute suggestion?

93
oattie

Je posais la même question et si j'ai bien compris ce que Mark (CommonsWare) 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 de 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 le périphérique réel si vous avez des problèmes

38
mishkin

VideoView est essentiellement une vue liée à un MediaPlayer pour faciliter l'implémentation de vidéos dans votre application. Si vous ne faites pas beaucoup de travail personnalisé, VideoView est le chemin à parcourir.

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 appareil, car la lecture de l'émulateur est mauvaise, et vous devez également savoir que RTSP nécessite un port supplémentaire pour être ouvert, qui est bloqué par certains pare-feu.

16
Ian G. Clifton

Lisez le lien ci-dessous, cela vous aidera et résoudra votre question.

http://eclipsesource.com/blogs/2012/08/24/lessons-learned-when-using-androids-mediaplayer-and-videoview/

4
Ajit

Le 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 ne fonctionne pas

0
HocineHamdi