繁体   English   中英

在VideoView中更快地缓冲和播放视频

[英]buffer and play videos faster in VideoView

使用毕加索,我能够在Android应用程序中快速下载并显示图像。 现在,我想从我的S3服务器中流式传输视频,并通过我的应用播放这些视频,而不是在这里通过代码进行播放:

try {
        MediaController VideoController = new MediaController(VideoPlayerActivity.this);//Creates a media controller to this activity.

        VideoController.setAnchorView(AdVideoView);//Adds the media controller to the video view.
        Uri video = Uri.parse(VideoURL);//Creates a Uri to hold the URL of the video.
        AdVideoView.setMediaController(VideoController);//Add the media controller to the video view.
        AdVideoView.setVideoURI(video);//Make the video view play from the Uri.
    } catch(Exception e) {

        Log.e("Video Stream Error", e.getMessage());//Sets the message for the log.
        e.printStackTrace();//Displays the error in the stack trace.
        e.notify();
    }

有没有更快的方法通过GitHub或更好的代码显示视频?

提前致谢!

通常会减慢流式视频播放速度的是服务器和网络相关的问题,而不是客户端方面的问题-除非您的设备非常慢或很忙,否则不太可能无法以接收到的速率播放视频网络。

考虑到这一点,并假设您在流式视频中看到延迟,则有一些常见的事情要寻找。

首先,普通格式的mp4视频在视频文件的末尾具有元数据,这不利于流式传输。 有一种称为快速启动的技术,它将元数据移动到您肯定要使用的开始。 更多信息在这里:

其次,网络连接可能会发生明显变化,并且缓慢的网络使流式传输高质量视频文件成为一个问题。 称为自适应比特率流传输(ABR)的技术允许客户端在网络质量较差时请求较低质量的视频“块”,然后在质量提高时更改为较高质量。

ABR还可以帮助您缩短启动时间,因为它允许您通过使用较低的质量级别(从而使用较小的大小块)来快速启动视频流,然后随着视频的进行而提高质量。 今天(2016年7月)启动大多数在线视频服务(例如Netflix)时,您会看到这种效果。

需要注意的一件事是,视频托管和流媒体是一个专业领域,因此通常更容易利用现有的流媒体技术和服务,而不是自己构建它们。 可以找到一些不错的地方来感受开源解决方案:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM