📜  Kotlin 中的视频视图(1)

📅  最后修改于: 2023-12-03 15:32:30.618000             🧑  作者: Mango

Kotlin 中的视频视图

在 Kotlin 中,我们可以使用 VideoView 组件来添加视频播放的功能。

添加依赖

我们需要在 build.gradle 文件中添加以下依赖:

implementation 'com.google.android.exoplayer:exoplayer:2.10.5'
布局文件

在布局文件中添加 VideoView 组件:

<com.google.android.exoplayer2.ui.PlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
初始化播放器

在 Kotlin 代码中,我们需要初始化播放器:

private lateinit var playerView: PlayerView

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    
    // 初始化播放器
    playerView = findViewById(R.id.player_view)
    val player = SimpleExoPlayer.Builder(this).build()
    playerView.player = player
    
    // 加载视频资源
    val mediaItem = MediaItem.fromUri("https://example.com/video.mp4")
    player.setMediaItem(mediaItem)
}
播放视频

在准备就绪后,我们可以调用 player.play() 方法播放视频:

player.prepare()
player.play()

我们也可以监听视频播放状态,来控制视频播放:

player.addListener(object : Player.EventListener {
    override fun onPlayerStateChanged(playWhenReady: Boolean, playbackState: Int) {
        when (playbackState) {
            Player.STATE_BUFFERING -> {
                // 视频正在缓冲中
            }
            Player.STATE_READY -> {
                // 视频已准备就绪
            }
            Player.STATE_ENDED -> {
                // 视频播放完毕
            }
            Player.STATE_IDLE -> {
                // 播放器处于空闲状态
            }
        }
    }
})
释放播放器

在活动或碎片销毁时,我们需要释放播放器:

override fun onDestroy() {
    super.onDestroy()
    player.release()
}

以上就是 Kotlin 中使用 VideoView 组件实现视频播放的方法。