[英]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.