原生VideoView使用心得

五迷三道 提交于 2019-11-26 06:58:30

1.MediaController样式单一,并且一直悬浮在phoneWindow上面,如果嵌套在scrollview中,不会随着滚动而滚动。
2.activity执行stop会销毁VideoView
因为 VideoView 继承了 SurfaceView , 在 Activity 的 onStop() 生命周期中会调用 surfaceDestroyed(), 此时会释放 MediaPlayer, 所以当切换后台或打开新页面回来,视频就会重头播放,暂时还没想到解决办法.
3.videoView.seekto抖动
其实 seekTo 跳转的位置其实并不是参数所带的 position,而是离 position 最近的视频关键帧。
所以当视频在跳转到相应的 position 位置缺少关键帧的情况下,调用 seekTo 方法是无法在当前位置开始播放。这时会寻找离指定 position 最近的关键帧位置开始播放。
能缓解抖动的方法一,mp.setOnSeekCompleteListener

例如:
videoView.setOnPreparedListener(mp -> {
if (!mVideoView.isPlaying()) {
mVideoView.start();
}
mp.setOnSeekCompleteListener(mp1 -> {
if (!mVideoView.isPlaying()) {
mVideoView.start();
countDownTimer.start();
}
});
});

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!