【问题标题】:What is the difference between MediaPlayer and VideoView in AndroidAndroid中的MediaPlayer和VideoView有什么区别
【发布时间】:2011-05-05 00:30:00
【问题描述】:

我想知道他们在流式视频方面是否有区别。

我知道VideoView 可以用于流媒体,Mediaplayer 有什么用?据我所知,MediaPlayer 可以和VideoView 做同样的事情对吧?

谁能给我答案?

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

有什么建议吗?

【问题讨论】:

  • 不应该是超级用户吗?
  • 我认为它属于这里。这不是安卓编程题吗?

标签: android streaming android-mediaplayer android-videoview


【解决方案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】:

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2016-05-05
          • 2012-06-26
          • 2021-08-06
          • 2015-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多