forked from recloudstream/cloudstream
Possible fix for audio track decoding on some devices
This commit is contained in:
parent
afb35f73b3
commit
e1758e6346
2 changed files with 8 additions and 9 deletions
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue