Skip to content

Commit

Permalink
fix: exo / subtitle improvements (#335)
Browse files Browse the repository at this point in the history
  • Loading branch information
TwistedUmbrellaX committed Apr 8, 2024
1 parent 3666758 commit 47d05e7
Showing 1 changed file with 53 additions and 42 deletions.
95 changes: 53 additions & 42 deletions app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,11 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL
companion object {
var initialized = false
lateinit var media: Media

private const val DEFAULT_MIN_BUFFER_MS = 600000
private const val DEFAULT_MAX_BUFFER_MS = 600000
private const val BUFFER_FOR_PLAYBACK_MS = 2500
private const val BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS = 5000
}

private lateinit var episode: Episode
Expand Down Expand Up @@ -372,16 +377,31 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL
6 -> ResourcesCompat.getFont(this, R.font.blocky)
else -> ResourcesCompat.getFont(this, R.font.poppins_semi_bold)
}
playerView.subtitleView?.setStyle(
CaptionStyleCompat(
primaryColor,
subBackground,
subWindow,
outline,
secondaryColor,
font
val fontSize = PrefManager.getVal<Int>(PrefName.FontSize).toFloat()

playerView.subtitleView?.let { subtitles ->
subtitles.setApplyEmbeddedStyles(false)
subtitles.setApplyEmbeddedFontSizes(false)

subtitles.setStyle(
CaptionStyleCompat(
primaryColor,
subBackground,
subWindow,
outline,
secondaryColor,
font
)
)
)

subtitles.alpha =
when (PrefManager.getVal<Boolean>(PrefName.Subtitles)) {
true -> PrefManager.getVal(PrefName.SubAlpha)
false -> 0f
}

subtitles.setFixedTextSize(TypedValue.COMPLEX_UNIT_SP, fontSize)
}
}

override fun onCreate(savedInstanceState: Bundle?) {
Expand Down Expand Up @@ -484,14 +504,6 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL

setupSubFormatting(playerView)


playerView.subtitleView?.alpha = when (PrefManager.getVal<Boolean>(PrefName.Subtitles)) {
true -> PrefManager.getVal(PrefName.SubAlpha)
false -> 0f
}
val fontSize = PrefManager.getVal<Int>(PrefName.FontSize).toFloat()
playerView.subtitleView?.setFixedTextSize(TypedValue.COMPLEX_UNIT_SP, fontSize)

if (savedInstanceState != null) {
currentWindow = savedInstanceState.getInt(resumeWindow)
playbackPosition = savedInstanceState.getLong(resumePosition)
Expand Down Expand Up @@ -903,7 +915,8 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL
isFastForwarding = true
exoPlayer.setPlaybackSpeed(exoPlayer.playbackParameters.speed * 2)
fastForward.visibility = View.VISIBLE
fastForward.text = "${exoPlayer.playbackParameters.speed}x"
val speed = "${exoPlayer.playbackParameters.speed}x"
fastForward.text = speed
}

fun stopFastForward() {
Expand Down Expand Up @@ -1554,11 +1567,6 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL

private fun buildExoplayer() {
//Player
val DEFAULT_MIN_BUFFER_MS = 600000
val DEFAULT_MAX_BUFFER_MS = 600000
val BUFFER_FOR_PLAYBACK_MS = 2500
val BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS = 5000

val loadControl = DefaultLoadControl.Builder()
.setBackBuffer(1000 * 60 * 2, true)
.setBufferDurationsMs(
Expand Down Expand Up @@ -1878,25 +1886,28 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL

override fun onTracksChanged(tracks: Tracks) {
tracks.groups.forEach {
println("Track__: $it")
println("Track__: ${it.length}")
println("Track__: ${it.isSelected}")
println("Track__: ${it.type}")
println("Track__: ${it.mediaTrackGroup.id}")
if (it.type == 3 && it.mediaTrackGroup.id == "1:") {
playerView.player?.trackSelectionParameters =
playerView.player?.trackSelectionParameters?.buildUpon()
?.setOverrideForType(
TrackSelectionOverride(it.mediaTrackGroup, it.length - 1)
)
?.build()!!
} else if (it.type == 3) {
playerView.player?.trackSelectionParameters =
playerView.player?.trackSelectionParameters?.buildUpon()
?.addOverride(
TrackSelectionOverride(it.mediaTrackGroup, listOf())
)
?.build()!!
println("Track__: $it\nTrack__: ${it.length}\nTrack__: ${it.isSelected}\n" +
"Track__: ${it.type}\nTrack__: ${it.mediaTrackGroup.id}")
when (it.type) {
C.TRACK_TYPE_AUDIO -> { }
C.TRACK_TYPE_TEXT -> {
if (it.mediaTrackGroup.id == "1:") {
playerView.player?.trackSelectionParameters =
playerView.player?.trackSelectionParameters?.buildUpon()
?.setOverrideForType(
TrackSelectionOverride(it.mediaTrackGroup, it.length - 1)
)
?.build()!!
} else {
playerView.player?.trackSelectionParameters =
playerView.player?.trackSelectionParameters?.buildUpon()
?.addOverride(
TrackSelectionOverride(it.mediaTrackGroup, listOf())
)
?.build()!!
}
}
C.TRACK_TYPE_VIDEO -> { }
}
}
println("Track: ${tracks.groups.size}")
Expand Down

0 comments on commit 47d05e7

Please sign in to comment.