tv-samples icon indicating copy to clipboard operation
tv-samples copied to clipboard

[JetStreamCompose] External subtitles not displayed

Open evilsloth opened this issue 6 months ago • 1 comments

According to the code, subtitles should be displayed by default if they are defined in movies.json. And in the example there are this subtitles defined for every sample movie:

  {
    "id": "8daa7d22d13a9",
    "videoUri": "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
    "subtitleUri": "https://thepaciellogroup.github.io/AT-browser-tests/video/subtitles-en.vtt",

and here is the code that loads the subtitles:

    val exoPlayer = rememberExoPlayer(context)
    LaunchedEffect(exoPlayer, movieDetails) {
        exoPlayer.setMediaItem(
            MediaItem.Builder()
                .setUri(movieDetails.videoUri)
                .setSubtitleConfigurations(
                    if (movieDetails.subtitleUri == null) {
                        emptyList()
                    } else {
                        listOf(
                            MediaItem.SubtitleConfiguration.Builder(Uri.parse(movieDetails.subtitleUri))
                                .setMimeType("application/vtt")
                                .setLanguage("en")
                                .setSelectionFlags(C.SELECTION_FLAG_DEFAULT)
                                .build()
                        )
                    }
                ).build()
        )
        exoPlayer.prepare()
    }

But the subtitles are never displayed. Even if we enable default overlay (useController = true), there is no option to enable subtitles there, like it never even loads them.

Is this some exoplayer issue or some problem with using it with compose? I tried to build the sample from the time this code was first added. But it doesn't work either.

evilsloth avatar Feb 10 '24 21:02 evilsloth