Android中的MediaPlayer和VideoView有什么不同?

我想知道在stream媒体video方面他们是否有区别。

我知道VideoView可以用于stream媒体和什么是Mediaplayer的? 据我所知, MediaPlayer可以做VideoView同样的事情吗?

任何人都可以给我答案?

如果我想通过使用RTSP将Androidvideo从服务器stream式传输到Android,我应该从哪一个开始? VideoViewMediaPlayer

任何build议?

问了同样的问题,我从Mark(CommonsWare)在这里的众multithreading中build议的理解中了解到,VideoView是MediaPlayer和SurfaceView提供embedded式控件的封装(200行代码)。

他也慷慨地分享了一些例子:

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

和来自android sdk的示例http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

还有一些人在模拟器上播放video有问题,所以如果你有问题,一定要在实际的设备上进行testing

VideoView本质上是一个与MediaPlayer绑定的视图,使您可以更轻松地在您的应用中实现video。 如果你没有做很多的定制工作,VideoView是要走的路。

也就是说,您还可以将RTSP链接传递给系统,以使用最合适的应用程序播放video,这更容易:

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

video应该在设备上进行testing,因为模拟器的播放效果很差,而且您还应该知道RTSP需要打开一个额外的端口,而某些防火墙会阻止该端口。

阅读下面的链接,它会帮助你,并会解决你的问题。

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

VideoPlayer是MediaPlayer和SurfaceView的包装,如果video文件存储在应用程序使用内容提供者的内部存储器中,或者将它们存储为世界可读的,则使用VideoView比使用MediaPlayer更容易实现video播放器,否则将不行