diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index b25279b9..7cbde29d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -427,7 +427,7 @@ class CS3IPlayer : IPlayer { /** * Setting this variable is permanent across app sessions. **/ - private var preferredAudioTrackLanguage: String? = null + var preferredAudioTrackLanguage: String? = null get() { return field ?: getKey(PREFERRED_AUDIO_LANGUAGE_KEY, field)?.also { field = it @@ -559,10 +559,7 @@ class CS3IPlayer : IPlayer { // This will not force higher quality videos to fail // but will make the m3u8 pick the correct preferred .setMaxVideoSize(Int.MAX_VALUE, maxVideoHeight ?: Int.MAX_VALUE) - .setPreferredAudioLanguage(preferredAudioTrackLanguage) - - // This would also clear preferred audio -// .clearSelectionOverrides() + .setPreferredAudioLanguage(null) .build() return trackSelector } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 05b599de..e74132bc 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -18,11 +18,7 @@ import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.lifecycle.ViewModelProvider import androidx.preference.PreferenceManager -import com.google.android.exoplayer2.C.TRACK_TYPE_AUDIO -import com.google.android.exoplayer2.C.TRACK_TYPE_VIDEO -import com.google.android.exoplayer2.Format import com.google.android.exoplayer2.Format.NO_VALUE -import com.google.android.exoplayer2.TracksInfo import com.google.android.exoplayer2.util.MimeTypes import com.hippo.unifile.UniFile import com.lagradost.cloudstream3.* @@ -34,6 +30,7 @@ import com.lagradost.cloudstream3.mvvm.normalSafeApiCall import com.lagradost.cloudstream3.mvvm.observe import com.lagradost.cloudstream3.subtitles.AbstractSubtitleEntities import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.subtitleProviders +import com.lagradost.cloudstream3.ui.player.CS3IPlayer.Companion.preferredAudioTrackLanguage import com.lagradost.cloudstream3.ui.player.CustomDecoder.Companion.updateForcedEncoding import com.lagradost.cloudstream3.ui.player.PlayerSubtitleHelper.Companion.toSubtitleMimeType import com.lagradost.cloudstream3.ui.result.ResultEpisode @@ -119,6 +116,11 @@ class GeneratorPlayer : FullScreenPlayer() { override fun onTracksInfoChanged() { val tracks = player.getVideoTracks() player_tracks_btt?.isVisible = tracks.allVideoTracks.size > 1 || tracks.allAudioTracks.size > 1 + // Only set the preferred language if it is available. + // Otherwise it may give some users audio track init failed! + if (tracks.allAudioTracks.any { it.language == preferredAudioTrackLanguage }){ + player.setPreferredAudioTrack(preferredAudioTrackLanguage) + } } private fun noSubtitles(): Boolean {