attempt to fix captions

This commit is contained in:
Bnyro 2022-11-11 19:05:05 +01:00
parent 7f1e0147c1
commit 906728f51b

View File

@ -149,7 +149,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
* for the player view * for the player view
*/ */
private lateinit var exoPlayerView: StyledPlayerView private lateinit var exoPlayerView: StyledPlayerView
private var subtitle = mutableListOf<SubtitleConfiguration>() private var subtitles = mutableListOf<SubtitleConfiguration>()
/** /**
* user preferences * user preferences
@ -1046,7 +1046,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
val videoItem: MediaItem = MediaItem.Builder() val videoItem: MediaItem = MediaItem.Builder()
.setUri(videoUri) .setUri(videoUri)
.setSubtitleConfigurations(subtitle) .setSubtitleConfigurations(subtitles)
.build() .build()
val videoSource: MediaSource = val videoSource: MediaSource =
@ -1067,7 +1067,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
private fun setHLSMediaSource(uri: Uri) { private fun setHLSMediaSource(uri: Uri) {
val mediaItem: MediaItem = MediaItem.Builder() val mediaItem: MediaItem = MediaItem.Builder()
.setUri(uri) .setUri(uri)
.setSubtitleConfigurations(subtitle) .setSubtitleConfigurations(subtitles)
.build() .build()
exoPlayer.setMediaItem(mediaItem) exoPlayer.setMediaItem(mediaItem)
} }
@ -1118,11 +1118,11 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
val (videosNameArray, videosUrlArray) = getAvailableResolutions() val (videosNameArray, videosUrlArray) = getAvailableResolutions()
// create a list of subtitles // create a list of subtitles
subtitle = mutableListOf() subtitles = mutableListOf()
val subtitlesNamesList = mutableListOf(context?.getString(R.string.none)!!) val subtitlesNamesList = mutableListOf(context?.getString(R.string.none)!!)
val subtitleCodesList = mutableListOf("") val subtitleCodesList = mutableListOf("")
streams.subtitles!!.forEach { streams.subtitles.orEmpty().forEach {
subtitle.add( subtitles.add(
SubtitleConfiguration.Builder(it.url!!.toUri()) SubtitleConfiguration.Builder(it.url!!.toUri())
.setMimeType(it.mimeType!!) // The correct MIME type (required). .setMimeType(it.mimeType!!) // The correct MIME type (required).
.setLanguage(it.code) // The subtitle language (optional). .setLanguage(it.code) // The subtitle language (optional).
@ -1133,13 +1133,17 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
} }
// set the default subtitle if available // set the default subtitle if available
val newParams = trackSelector.buildUponParameters()
if (PlayerHelper.defaultSubtitleCode != "" && subtitleCodesList.contains(PlayerHelper.defaultSubtitleCode)) { if (PlayerHelper.defaultSubtitleCode != "" && subtitleCodesList.contains(PlayerHelper.defaultSubtitleCode)) {
val newParams = trackSelector.buildUponParameters() newParams
.setPreferredTextLanguage(PlayerHelper.defaultSubtitleCode) .setPreferredTextLanguage(PlayerHelper.defaultSubtitleCode)
.setPreferredTextRoleFlags(C.ROLE_FLAG_CAPTION) .setPreferredTextRoleFlags(C.ROLE_FLAG_CAPTION)
trackSelector.setParameters(newParams) } else {
newParams.setPreferredTextLanguage(null)
} }
trackSelector.setParameters(newParams)
// set media source and resolution in the beginning // set media source and resolution in the beginning
setStreamSource( setStreamSource(
streams, streams,
@ -1334,7 +1338,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
// none selected // none selected
// disable captions // disable captions
trackSelector.buildUponParameters() trackSelector.buildUponParameters()
.setPreferredTextLanguage("") .setPreferredTextLanguage(null)
} }
// set the new caption language // set the new caption language