mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 23:40:33 +05:30
Merge pull request #2737 from Bnyro/master
Ability to skip silence when playing videos
This commit is contained in:
commit
958e89059f
@ -88,6 +88,7 @@ object PreferenceKeys {
|
||||
const val DOUBLE_TAP_TO_SEEK = "double_tap_seek"
|
||||
const val PAUSE_ON_QUIT = "pause_on_quit"
|
||||
const val ALTERNATIVE_PIP_CONTROLS = "alternative_pip_controls"
|
||||
const val SKIP_SILENCE = "skip_silence"
|
||||
|
||||
/**
|
||||
* Background mode
|
||||
|
@ -4,13 +4,15 @@ import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.github.libretube.constants.PreferenceKeys
|
||||
import com.github.libretube.databinding.PlaybackBottomSheetBinding
|
||||
import com.github.libretube.extensions.round
|
||||
import com.github.libretube.util.PreferenceHelper
|
||||
import com.google.android.exoplayer2.ExoPlayer
|
||||
import com.google.android.exoplayer2.PlaybackParameters
|
||||
import com.google.android.exoplayer2.Player
|
||||
|
||||
class PlaybackSpeedSheet(
|
||||
private val player: Player
|
||||
private val player: ExoPlayer
|
||||
) : ExpandedBottomSheet() {
|
||||
private lateinit var binding: PlaybackBottomSheetBinding
|
||||
|
||||
@ -28,6 +30,9 @@ class PlaybackSpeedSheet(
|
||||
|
||||
binding.speed.value = player.playbackParameters.speed
|
||||
binding.pitch.value = player.playbackParameters.pitch
|
||||
PreferenceHelper.getBoolean(PreferenceKeys.SKIP_SILENCE, false).let {
|
||||
binding.skipSilence.isChecked = it
|
||||
}
|
||||
|
||||
binding.speed.addOnChangeListener { _, _, _ ->
|
||||
onChange()
|
||||
@ -46,6 +51,11 @@ class PlaybackSpeedSheet(
|
||||
binding.pitch.value = 1f
|
||||
onChange()
|
||||
}
|
||||
|
||||
binding.skipSilence.setOnCheckedChangeListener { _, isChecked ->
|
||||
player.skipSilenceEnabled = isChecked
|
||||
PreferenceHelper.putBoolean(PreferenceKeys.SKIP_SILENCE, isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
private fun onChange() {
|
||||
|
@ -15,6 +15,7 @@ import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.constants.PreferenceKeys
|
||||
import com.github.libretube.databinding.DoubleTapOverlayBinding
|
||||
import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding
|
||||
import com.github.libretube.databinding.PlayerGestureControlsViewBinding
|
||||
@ -33,6 +34,8 @@ import com.github.libretube.util.BrightnessHelper
|
||||
import com.github.libretube.util.PlayerGestureController
|
||||
import com.github.libretube.util.PlayerHelper
|
||||
import com.github.libretube.util.PlayingQueue
|
||||
import com.github.libretube.util.PreferenceHelper
|
||||
import com.google.android.exoplayer2.ExoPlayer
|
||||
import com.google.android.exoplayer2.PlaybackParameters
|
||||
import com.google.android.exoplayer2.Player
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelector
|
||||
@ -111,6 +114,9 @@ internal class CustomExoPlayerView(
|
||||
PlayerHelper.playbackSpeed.toFloat(),
|
||||
1.0f
|
||||
)
|
||||
PreferenceHelper.getBoolean(PreferenceKeys.SKIP_SILENCE, false).let {
|
||||
(player as ExoPlayer).skipSilenceEnabled = true
|
||||
}
|
||||
playbackPrefSet = true
|
||||
}
|
||||
|
||||
@ -484,7 +490,9 @@ internal class CustomExoPlayerView(
|
||||
}
|
||||
|
||||
override fun onPlaybackSpeedClicked() {
|
||||
player?.let { PlaybackSpeedSheet(it).show(supportFragmentManager) }
|
||||
player?.let {
|
||||
PlaybackSpeedSheet(it as ExoPlayer).show(supportFragmentManager)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResizeModeClicked() {
|
||||
|
@ -92,6 +92,29 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:orientation="horizontal"
|
||||
android:paddingHorizontal="20dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/skip_silence"
|
||||
android:textSize="18sp" />
|
||||
|
||||
<com.google.android.material.materialswitch.MaterialSwitch
|
||||
android:id="@+id/skip_silence"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
@ -441,6 +441,7 @@
|
||||
<string name="audio_only_mode">Audio only mode</string>
|
||||
<string name="audio_only_mode_summary">Turn LibreTube into a music player.</string>
|
||||
<string name="sleep_timer">Sleep timer</string>
|
||||
<string name="skip_silence">Skip silence</string>
|
||||
|
||||
<!-- Notification channel strings -->
|
||||
<string name="download_channel_name">Download Service</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user