Android中的MediaPlayer和VideoView有什么区别


95

我想知道流媒体视频之间是否存在区别。

我知道VideoView可以用于流式传输,它是Mediaplayer做什么用的?据我所知,MediaPlayer能做VideoView正确的事吗?

谁能给我答案?

如果我想使用RTSP将视频从服务器流式传输到Android,应该从哪一个开始?VideoView还是MediaPlayer

有什么建议吗?


这不是超级用户吗?
Quamis

13
我认为它属于这里。这不是Android编程的问题吗?
juell 2011年

Answers:


40

在问相同的问题时,正如我从Mark(CommonsWare)在这里对多个线程的建议所了解的那样,VideoView是MediaPlayer和SurfaceView的包装器(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

另外,有些人在模拟器上播放视频时遇到问题,因此如果遇到问题,请确保在实际设备上对其进行测试


17

VideoView本质上是一个与MediaPlayer绑定的View,使在您的应用中实施视频变得更加容易。如果您不需要做很多自定义工作,那么VideoView是您的理想之选。

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

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

由于仿真器的播放效果较差,因此应在设备上测试视频,并且还应注意,RTSP需要打开一个额外的端口,该端口已被某些防火墙阻止。


哪一个更快?
陈伟业


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.