Android中的MediaPlayer和VideoView有啥区别
Posted
技术标签:
【中文标题】Android中的MediaPlayer和VideoView有啥区别【英文标题】:What is the difference between MediaPlayer and VideoView in AndroidAndroid中的MediaPlayer和VideoView有什么区别 【发布时间】:2011-05-05 00:30:00 【问题描述】:我想知道他们在流式视频方面是否有区别。
我知道VideoView
可以用于流媒体,Mediaplayer
有什么用?据我所知,MediaPlayer
可以和VideoView
做同样的事情对吧?
谁能给我答案?
如果我想通过使用 RTSP 将视频从服务器流式传输到 android,我应该从哪一个开始? VideoView
或 MediaPlayer
?
有什么建议吗?
【问题讨论】:
不应该是超级用户吗? 我认为它属于这里。这不是安卓编程题吗? 【参考方案1】:问同样的问题,正如我从 Mark (CommonsWare) advised 在这里的许多线程中了解到的那样,VideoView 是 MediaPlayer 和 SurfaceView 提供嵌入式控件的包装器(20000 行代码)。
他还好心地分享了一些例子:
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
还有一些人在模拟器上播放视频时遇到问题,所以如果您遇到问题,请务必在实际设备上进行测试
【讨论】:
【参考方案2】:VideoView 本质上是一个与 MediaPlayer 相关联的视图,可以更轻松地在您的应用中实现视频。如果您没有做太多的自定义工作,VideoView 是您的最佳选择。
也就是说,您也可以将 RTSP 链接传递给系统,以使用最合适的应用播放视频,这更容易做到:
String url = "rtsp://yourrtsplink.com/blah";
Uri uri = Uri.parse(url);
startActivity(new Intent(Intent.ACTION_VIEW, uri));
应该在设备上测试视频,因为模拟器的播放效果很差,而且您还应该知道 RTSP 需要打开一个额外的端口,这被某些防火墙阻止。
【讨论】:
【参考方案3】:阅读下面的链接,它将帮助您并解决您的问题。
http://eclipsesource.com/blogs/2012/08/24/lessons-learned-when-using-androids-mediaplayer-and-videoview/
【讨论】:
【参考方案4】:VideoAdView 是 MediaPlayer 和 SurfaceView 的包装器,如果视频文件存储在应用程序的内部存储中,使用内容提供程序或将它们存储为全球可读,则使用 VideoView 实现视频播放器比使用 MediaPlayer 更容易,否则将无法正常工作
【讨论】:
以上是关于Android中的MediaPlayer和VideoView有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 中的 SoundPool 到 MediaPlayer
Android Multimedia框架总结MediaPlayer框架及播放网络视频案例
Android中的音频处理------SoundPool,MediaRecorder,MediaPlayer以及RingStone总结