Android 播放 Assets 文件视频

    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()
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值