VideoView视频播放宽高比例自适应:
videoView.setOnPreparedListener(object : MediaPlayer.OnPreparedListener {
override fun onPrepared(mp: MediaPlayer) {
// 计算视频的宽高比例来修改videoView的大小
calculateView(videoView,mp.videoWidth,mp.videoHeight)
// 准备好自动播放
videoView.start()
}
})
private fun calculateView(videoView:VideoView,videoWidth: Int,videoHeight:Int){
var videoViewWidth = videoView.width
var videoViewHeight = videoView.height
if(videoWidth < videoViewWidth && videoHeight >= videoViewHeight){
var rate:Float = videoHeight.toFloat()/videoWidth.toFloat()
var newvideoWidth = videoViewHeight/rate
reSetVideoViewWidth(videoView,newvideoWidth.toInt())
}else if(videoWidth > videoViewWidth && videoHeight >= videoViewHeight){
var rate:Float = videoHeight.toFloat()/videoWidth.toFloat()
var newvideoWidth = videoViewHeight/rate
reSetVideoViewWidth(videoView,newvideoWidth.toInt())
}
}
private fun reSetVideoViewWidth(videoView:VideoView,newWidth:Int){
var lp = videoView.layoutParams
lp.width = newWidth;
videoView.layoutParams = lp
}