Thursday, 25 March 2021

Stream freezes when changing subtitles

Im my application I use the ExoPlayer library to play videos. I'm able to change the audio track with following code by passing C.TRACK_TYPE_AUDIO as trackType:

private fun selectTrack(trackType: Int, groupId: Int, trackId: Int) {
    val mappedTrackInfo = trackSelector.currentMappedTrackInfo ?: return

    val parameters = trackSelector.parameters
    val builder = parameters.buildUpon()

    for (rendererIndex in 0 until mappedTrackInfo.rendererCount) {
        val trackGroups = mappedTrackInfo.getTrackGroups(rendererIndex)
        val rendererType = mappedTrackInfo.getRendererType(rendererIndex)

        if(!trackGroups.isEmpty && rendererType == trackType) {
            val override = SelectionOverride(groupID, trackID)

            builder.clearSelectionOverrides(rendererIndex).setRendererDisabled(rendererIndex, false)
            builder.setSelectionOverride(rendererIndex, trackGroups, override)
        }
    }

    trackSelector.setParameters(builder)
}

However, when I try to change subtitles by passing C.TRACK_TYPE_TEXT the whole stream freezes until I change an audio track (by calling the same function again) as well. Any ideas why that happens?



from Stream freezes when changing subtitles

No comments:

Post a Comment