Android中的MediaPlayer和VideoView有什么区别

时间:2010-11-04 11:41:51

标签: android streaming android-mediaplayer android-videoview

我想知道它们在流媒体视频方面是否存在差异。

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

有人能给我答案吗?

如果我想通过RTSP到Android来从服务器流式传输视频,我应该从哪个开始? VideoViewMediaPlayer

有什么建议吗?

4 个答案:

答案 0 :(得分:38)

提出了同样的问题,并且我从Mark(CommonsWare)advised在众多线程中理解,VideoView是一个包装器(200行代码),用于MediaPlayer和SurfaceView提供嵌入式控件。

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

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

也有些人在模拟器上播放视频时出现问题,因此如果您遇到问题,请务必在实际设备上进行测试

答案 1 :(得分:16)

VideoView本质上是一个与MediaPlayer绑定的视图,使您可以更轻松地在应用中实现视频。如果您没有做很多自定义工作,可以采用VideoView。

也就是说,您也可以将RTSP链接传递给系统,以使用最合适的应用播放视频,这样做更容易:

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

视频应该在设备上进行测试,因为仿真器播放效果不佳,您还应该知道RTSP需要打开一个额外的端口,这会被某些防火墙阻止。

答案 2 :(得分:4)

答案 3 :(得分:0)

VideoPlayer是MediaPlayer和SurfaceView的包装器,如果视频文件存储在app使用内容提供商的内部存储中,或者将它们存储为全球可读,则使用VideoView实现视频播放器比使用MediaPlayer更容易。否则它将无法正常工作