ExoPlayer实现本地视频播放器

最近单位项目不太忙,决定写个Demo实现一个自己的本地视频播放器,界面参考了完美视频播放器

本地视频播放器 架构简单,功能简单 MVVM+kotlin+exoplayer实现 当前实现点:

  1. 扫描本地视频并以文件夹(视频列表)形式显示
  2. 针对视频功能:单视频循环,目录循环播放,支持截图与变速,支持快进,快退支持全屏与填充两种方式
  3. 看一下实现效果图
  4. 以Demo主要是业余时间想练习一下kotlin的使用
  5.  ExoPlayer实现本地视频播放器_第1张图片ExoPlayer实现本地视频播放器_第2张图片

  6. ExoPlayer实现本地视频播放器_第3张图片ExoPlayer实现本地视频播放器_第4张图片

     发一下主要代码:

        获取本地视频:

 /**
     * 获取本机视频列表
     * @return
     */
    public fun getVideoFolder(): ArrayList

构建视频播放:

 private fun initPlayer() {
        if (player == null) {
            // 1. 构建播放器实例
            player = ExoPlayer.Builder(this).build()

            playerView.player = player

            player!!.setMediaItem(MediaItem.fromUri(dataList.get(pos).path.toString()))
            player?.prepare()
            player?.repeatMode = REPEAT_MODE_OFF
        }

        // Play from the item selected on the playlist from previous activity/fragment
        // player?.seekTo(pos, C.TIME_UNSET)
        player?.addListener(PlayerEventListener())
        player?.playWhenReady = true
    }

 记录历史记录:

 init {
        if (repository == null) {
            repository = InjectorUtil.getAlbumRepository()
        }
    }
    public fun getTime(): String {
        var format = SimpleDateFormat("HH:mm")
        return TimeUtils.getNowString(format)
    }

    fun saveHistory(video: Video) {
        repository?.videoDao?.saveVideoHistory(video)
    }

感谢MVVMLin:MVVMLin

本来还想再弄弄,但是时间不够用,先以工作为主吧,在工作中进步

你可能感兴趣的:(音视频)