我制作了一个简单的应用程序(或代码示例)来复制视频,但是当我在视频中使用“ seekTo(int)”时,加载的缓冲区丢失了,为什么会发生..? = /。
这就是我认为的部分,您需要看看。
videoView.setKeepScreenOn(true);
//videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.second_consumible));
videoView.setMediaController(new MediaController(this));
videoView.setVideoURI(Uri.parse("https://www.addpipe.com/sample_vid/short.mp4"));
videoView.requestFocus();
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);
android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams();
params.width = metrics.widthPixels;
params.height = metrics.heightPixels;
params.leftMargin = 0;
videoView.setLayoutParams(params);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(final MediaPlayer mp) {
videoView.start();
mp.setVolume(0f,0f);
seekBar.setProgress(0);
seekBar.setMax(videoView.getDuration());
}
});
我还尝试了Exoplayer,并且发生的情况完全相同。
问题:
问题是,视频在本地(在电话中)具有的行为与视频在流中的行为不同(因为如果我使用seekto(int),则缓冲区会在加载后丢失,是有解决方案吗??
预先感谢