![](https://i-blog.csdnimg.cn/blog_migrate/08974847521cd7ddd12c5fef9c65f6fd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/486ae8c9a32b68e46b3f087bf3fe0e27.png)
var mPlayer: MediaPlayer? = null
fun playVideo() {
val mHolder: SurfaceHolder = mBinding.mSurfaceView?.holder!!
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)
mPlayer = MediaPlayer()
mHolder.addCallback(object : SurfaceHolder.Callback {
override fun surfaceCreated(holder: SurfaceHolder) {
mPlayer?.setDisplay(mHolder)
}
override fun surfaceChanged( holder: SurfaceHolder,format: Int,width: Int,height: Int
) {}
override fun surfaceDestroyed(holder: SurfaceHolder) {
mPlayer?.release()
mPlayer = null
}
})
assets.openFd("splash_video.mp4").let { afd ->
log("文件大小:${afd.length}")
mPlayer?.setDataSource(afd.fileDescriptor, afd.startOffset, afd.length)
mPlayer?.prepareAsync()
//设置全屏播放不拉伸
mPlayer?.setVideoScalingMode(MediaPlayer.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING)
mPlayer?.setOnPreparedListener {
mPlayer?.start()
//循环播放
mPlayer?.isLooping = true
}
afd.close()
}
}