What is the difference between MediaPlayer and VideoView in Android

AndroidStreamingAndroid MediaplayerAndroid Videoview

Android Problem Overview


I was wondering if there's a difference between them when it comes to streaming videos.

I know VideoView can be used for streaming and what is Mediaplayer for? As far as I know, MediaPlayer can do the same thing as VideoView right?

Can anyone give me the answer?

And if I want to stream video from the server by using RTSP to Android, which one should I start with? VideoView or MediaPlayer?

Any suggestion?

Android Solutions


Solution 1 - Android

Was asking the same question and as I understood from what Mark (CommonsWare) advised on numerous threads here, VideoView is a wrapper (200 hundred lines of code) for MediaPlayer and SurfaceView to provide embedded controls.

He also kindly shared some examples:

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

and example from android sdk http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

Also some people had issues playing video on emulator, so make sure to test it on actual device if you have issues

Solution 2 - Android

VideoView is essentially a View that is tied to a MediaPlayer to make it a lot easier to implement videos in your app. If you aren't doing much custom work, VideoView is the way to go.

That said, you can also pass the RTSP link off to the system to use the most appropriate app for playing the video, which is even easier to do:

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

Video should be tested on a device, since emulator playback is poor, and you should also be aware that RTSP requires an extra port to be open, which is blocked by some firewalls.

Solution 3 - Android

Solution 4 - Android

The VideoAdView is a wrapper for MediaPlayer and SurfaceView, it's more easy to implement video player with VideoView than with a MediaPlayer, if the video files are stored in the internal storage of the app use content provider or store them as world readable, otherwise it will not work

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionoattieView Question on Stackoverflow
Solution 1 - AndroidmishkinView Answer on Stackoverflow
Solution 2 - AndroidIan G. CliftonView Answer on Stackoverflow
Solution 3 - AndroidAjitView Answer on Stackoverflow
Solution 4 - AndroidHocineHamdiView Answer on Stackoverflow