如何使用 Kotlin 在 ExoPlayer 中为视频设置字幕?

问题描述 投票:0回答:1

我有使用 ExoPlayer 显示视频的功能:

private fun initializePlayer() {
    // ExoPlayer implements the Player interface
    player = ExoPlayer.Builder(this)
        .build()
        .also { exoPlayer ->
            viewBinding.videoView.player = exoPlayer

            val mediaItem =
                MediaItem.fromUri("some url")

            
            exoPlayer.setMediaItems(listOf(mediaItem), mediaItemIndex, playbackPosition)
            exoPlayer.playWhenReady = playWhenReady
            exoPlayer.prepare()
        }
}

我试过这个:

  val subtitle = SubtitleConfiguration.Builder(subtitleUri)
                    .setMimeType(MimeTypes.APPLICATION_SUBRIP) // The correct MIME type (required).
                    .build()
                exoPlayer.addMediaItem(subtitle)

但是我得到一个错误:

类型不匹配:推断类型是 MediaItem.SubtitleConfiguration 但 MediaItem 是预期的

我有一个 srt 文件的链接,我如何使用该链接为视频添加字幕?

kotlin exoplayer
1个回答
0
投票

您正在尝试添加 SubtitleConfiguration 对象而不是 MediaItem。 您必须先创建一个包含字幕信息的 MediaItem

val mediaItem = MediaItem.Builder()
                .setUri("some url")
                .setMimeType(MimeTypes.VIDEO_MP4) // set the MIME type of the video
                .setSubtitles(listOf(Subtitle(Uri.parse("https://example.com/subtitles.srt"), MimeTypes.APPLICATION_SUBRIP)))
                .build()
© www.soinside.com 2019 - 2024. All rights reserved.