Skip to content

Commit 2aa8aad

Browse files
feat: support skip silence
1 parent d5790fc commit 2aa8aad

File tree

11 files changed

+43
-0
lines changed

11 files changed

+43
-0
lines changed

android/src/main/kotlin/project/pipepipe/app/service/PlaybackService.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.media3.exoplayer.ExoPlayer
1515
import androidx.media3.session.*
1616
import com.google.common.util.concurrent.Futures
1717
import com.google.common.util.concurrent.ListenableFuture
18+
import com.russhwolf.settings.SettingsListener
1819
import dev.icerock.moko.resources.desc.desc
1920
import kotlinx.coroutines.*
2021
import project.pipepipe.app.MR
@@ -54,6 +55,9 @@ class PlaybackService : MediaLibraryService() {
5455
private var sponsorBlockCheckJob: Job? = null
5556
private val serviceScope = CoroutineScope(Dispatchers.Main + SupervisorJob())
5657

58+
// Skip silence setting listener
59+
private var skipSilenceListener: SettingsListener? = null
60+
5761
private enum class PlaybackButtonState(
5862
val repeatMode: Int,
5963
val shuffleEnabled: Boolean,
@@ -175,6 +179,7 @@ class PlaybackService : MediaLibraryService() {
175179
setHandleAudioBecomingNoisy(true)
176180
repeatMode = Player.REPEAT_MODE_OFF
177181
shuffleModeEnabled = false
182+
skipSilenceEnabled = SharedContext.settingsManager.getBoolean("playback_skip_silence_key", false)
178183
addListener(createPlayerListener())
179184
}
180185

@@ -288,6 +293,16 @@ class PlaybackService : MediaLibraryService() {
288293
applyPlaybackMode(mode)
289294
}
290295
}
296+
297+
// Monitor skip silence setting changes
298+
skipSilenceListener = SharedContext.settingsManager.addBooleanListener(
299+
"playback_skip_silence_key",
300+
false
301+
) { enabled ->
302+
(player as? ForwardingPlayer)?.let { forwardingPlayer ->
303+
(forwardingPlayer.wrappedPlayer as? ExoPlayer)?.skipSilenceEnabled = enabled
304+
}
305+
}
291306
}
292307

293308
private fun getRepeatModeDisplayName(): String {
@@ -320,6 +335,10 @@ class PlaybackService : MediaLibraryService() {
320335
sponsorBlockCache.clear()
321336
skippedSegments.clear()
322337

338+
// Clean up skip silence listener
339+
skipSilenceListener?.deactivate()
340+
skipSilenceListener = null
341+
323342
super.onDestroy()
324343
session?.release()
325344
player.release()

android/src/main/kotlin/project/pipepipe/app/ui/screens/settings/PlayerSettingScreen.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ fun PlayerSettingScreen(
176176
enabled = musicModeEnabled,
177177
defaultValue = false
178178
),
179+
PreferenceItem.SwitchPref(
180+
key = "playback_skip_silence_key",
181+
title = stringResource(MR.strings.playback_skip_silence_title),
182+
summary = stringResource(MR.strings.playback_skip_silence_summary),
183+
defaultValue = false
184+
),
179185
)
180186

181187
Column {

library/src/commonMain/moko-resources/base/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,5 +446,7 @@
446446
<string name="about_donate_description">Thank you for using PipePipe! If you find it useful, please consider becoming a supporter on Ko-Fi. Your support is important to me and helps me add more exciting new features. Every bit counts! 😇</string>
447447
<string name="about_become_supporter">Become a Supporter</string>
448448
<string name="saved">Saved</string>
449+
<string name="playback_skip_silence_title">Skip silence</string>
450+
<string name="playback_skip_silence_summary">Automatically skip silent parts during playback</string>
449451

450452
</resources>

library/src/commonMain/moko-resources/de/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,4 +437,6 @@
437437
<string name="about_donate_description">Vielen Dank, dass du PipePipe nutzt! Wenn du es nützlich findest, erwäge bitte, ein Unterstützer auf Ko-Fi zu werden. Deine Unterstützung ist mir wichtig und hilft mir, weitere spannende neue Funktionen hinzuzufügen. Jeder Beitrag zählt! 😇</string>
438438
<string name="saved">Gespeichert</string>
439439
<string name="player_subtitle_auto_generated">automatisch generiert</string>
440+
<string name="playback_skip_silence_summary">Stille Passagen während der Wiedergabe automatisch überspringen</string>
441+
<string name="playback_skip_silence_title">Stille überspringen</string>
440442
</resources>

library/src/commonMain/moko-resources/es/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,4 +437,6 @@
437437
<string name="about_donate_description">¡Gracias por usar PipePipe! Si lo encuentras útil, considera convertirte en un patrocinador en Ko-Fi. Tu apoyo es importante para mí y me ayuda a añadir más funciones nuevas y emocionantes. ¡Cada pequeña contribución cuenta! 😇</string>
438438
<string name="saved">Guardado</string>
439439
<string name="player_subtitle_auto_generated">generado automáticamente</string>
440+
<string name="playback_skip_silence_summary">Omitir automáticamente las partes silenciosas durante la reproducción</string>
441+
<string name="playback_skip_silence_title">Omitir silencio</string>
440442
</resources>

library/src/commonMain/moko-resources/fr/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,4 +437,6 @@
437437
<string name="about_donate_description">Merci d\'utiliser PipePipe ! Si vous le trouvez utile, veuillez envisager de devenir un soutien sur Ko-Fi. Votre soutien est important pour moi et m\'aide à ajouter de nouvelles fonctionnalités passionnantes. Chaque contribution compte ! 😇</string>
438438
<string name="saved">Enregistré</string>
439439
<string name="player_subtitle_auto_generated">généré automatiquement</string>
440+
<string name="playback_skip_silence_summary">Ignorer automatiquement les parties silencieuses pendant la lecture</string>
441+
<string name="playback_skip_silence_title">Ignorer les silences</string>
440442
</resources>

library/src/commonMain/moko-resources/it/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,4 +437,6 @@
437437
<string name="about_donate_description">Grazie per aver usato PipePipe! Se lo trovi utile, considera di diventare un sostenitore su Ko-Fi. Il tuo supporto è importante per me e mi aiuta ad aggiungere nuove entusiasmanti funzionalità. Ogni contributo conta! 😇</string>
438438
<string name="saved">Salvato</string>
439439
<string name="player_subtitle_auto_generated">generato automaticamente</string>
440+
<string name="playback_skip_silence_summary">Salta automaticamente le parti silenziose durante la riproduzione</string>
441+
<string name="playback_skip_silence_title">Salta il silenzio</string>
440442
</resources>

library/src/commonMain/moko-resources/ja/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,4 +437,6 @@
437437
<string name="about_donate_description">PipePipeをご利用いただきありがとうございます!もしお役に立てたなら、Ko-Fiでサポーターになることをご検討ください。皆様のサポートは私にとって重要であり、よりエキサイティングな新機能を追加するのに役立ちます。どんな小さな貢献でも大歓迎です!😇</string>
438438
<string name="saved">保存済み</string>
439439
<string name="player_subtitle_auto_generated">自動生成</string>
440+
<string name="playback_skip_silence_summary">再生中に無音部分を自動的にスキップする</string>
441+
<string name="playback_skip_silence_title">無音をスキップ</string>
440442
</resources>

library/src/commonMain/moko-resources/vi/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,4 +437,6 @@
437437
<string name="about_donate_description">Cảm ơn bạn đã sử dụng PipePipe! Nếu bạn thấy ứng dụng hữu ích, vui lòng cân nhắc trở thành người ủng hộ trên Ko-Fi. Sự ủng hộ của bạn rất quan trọng đối với tôi và giúp tôi bổ sung thêm nhiều tính năng mới thú vị. Mọi đóng góp đều có giá trị! 😇</string>
438438
<string name="saved">Đã lưu</string>
439439
<string name="player_subtitle_auto_generated">tự động tạo</string>
440+
<string name="playback_skip_silence_summary">Tự động bỏ qua các phần im lặng trong khi phát lại</string>
441+
<string name="playback_skip_silence_title">Bỏ qua im lặng</string>
440442
</resources>

library/src/commonMain/moko-resources/zh-CN/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,4 +437,6 @@
437437
<string name="about_become_supporter">成为支持者</string>
438438
<string name="about_donate_description">感谢您使用 PipePipe!如果您觉得它有用,请考虑在 Ko-Fi 上成为支持者。您的支持对我非常重要,并帮助我添加更多令人兴奋的新功能。点滴支持都弥足珍贵!😇</string>
439439
<string name="saved">已保存</string>
440+
<string name="playback_skip_silence_summary">在播放期间自动跳过静音部分</string>
441+
<string name="playback_skip_silence_title">跳过静音</string>
440442
</resources>

0 commit comments

Comments
 (0)