【问题标题】:Need to play video in videoview only by buffering it without downloading full video at first. Is there any library for this?只需缓冲视频即可在视频视图中播放视频,而无需首先下载完整视频。有没有这方面的图书馆?
【发布时间】:2019-02-18 12:33:10
【问题描述】:

我有一个处理在 videoview 中播放视频的项目。视频播放良好,没有问题。问题是视频在完全下载后加载到 videoview 中。所以它需要一个初始时间来启动视频。这对我来说是个大问题,我需要一个解决方案或任何适合缓冲视频 url(20%)并在不完全加载的情况下播放的库。

    videoView.setOnPreparedListener(
            new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mediaPlayer) {

                    progress_bar.setVisibility(View.GONE);

                    if (mCurrentPosition > 0) {
                        videoView.seekTo(mCurrentPosition);
                    } else {
                        videoView.seekTo(1);
                    }
                    videoView.start();
                }
            });

【问题讨论】:

  • 我也有同样的问题。我已经搜索了很多,但我没有得到解决方案。有没有这方面的图书馆。
  • 然后去 ExoPlayer。你可以使用 exoplayer 做更多的事情。
  • Exoplayer有这个功能吗? Exoplayer 是为缓冲视频定制的,没有完全下载吗?

标签: android video video-streaming android-videoview


【解决方案1】:

正如 cmets 中所述,ExoPlayer 通常是在 Android 上播放视频的好主意,因此值得考虑使用它。

但是,对于您的特定问题,您可能希望查看服务器端,特别是确保您的服务器接受范围请求并确保视频设置为快速启动(如果它是 MP4) - 这会移动元数据视频开头而不是结尾的信息。

您可以在此处找到有关范围请求的更多信息,以及如何检查服务器是否接受它们的示例:https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests

curl -I http://i.imgur.com/z4d4kWk.jpg

HTTP/1.1 200 OK
...
Accept-Ranges: bytes
Content-Length: 146515

大多数服务器都接受它们,所以如果您发现它不接受,可能只是配置问题。

为了将 mp4 'MooV atom'(元数据标头信息)移动到开始,有很多工具可以让您执行此操作,包括开源手刹工具(查看“网络优化”复选框):

【讨论】:

  • 所以它都属于服务器端。在前端,我们没有任何工作或支持?
  • 现在几乎所有的视频播放器都将支持这一点,包括 HTML5 视频标签等,无论是用于直播还是视频点播
猜你喜欢
  • 2014-06-16
  • 2013-11-10
  • 2012-08-09
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 2017-01-15
相关资源
最近更新 更多