我有一个关于在videoview中播放视频的项目。视频播放效果不错,没问题。问题是视频在完全下载后在视频中加载。因此,需要一段时间才能启动视频。对我来说这是一个很大的问题,我需要一个解决方案或任何适合缓冲视频网址的库(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通常是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',元数据标题信息,开头有很多工具可以让你这样做,包括开源手刹工具(查看'web optimized'复选框):