Skip to content

Commit 027c018

Browse files
committed
🎨 添加配置项 播放器/停止上一媒体项
1 parent 0969340 commit 027c018

File tree

4 files changed

+44
-14
lines changed

4 files changed

+44
-14
lines changed

tv/src/main/java/top/yogiczy/mytv/tv/ui/screens/settings/SettingsViewModel.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,14 @@ class SettingsViewModel : ViewModel() {
336336
Configs.videoPlayerRenderMode = value
337337
}
338338

339+
private var _videoPlayerStopPreviousMediaItem by mutableStateOf(false)
340+
var videoPlayerStopPreviousMediaItem: Boolean
341+
get() = _videoPlayerStopPreviousMediaItem
342+
set(value) {
343+
_videoPlayerStopPreviousMediaItem = value
344+
Configs.videoPlayerStopPreviousMediaItem = value
345+
}
346+
339347
init {
340348
// 删除过期的预约
341349
_epgChannelReserveList = EpgProgrammeReserveList(

tv/src/main/java/top/yogiczy/mytv/tv/ui/screens/settings/components/SettingsCategoryVideoPlayer.kt

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,31 @@ fun SettingsCategoryVideoPlayer(
4040
)
4141
}
4242

43+
item {
44+
SettingsListItem(
45+
headlineContent = "强制音频软解",
46+
trailingContent = {
47+
Switch(settingsViewModel.videoPlayerForceAudioSoftDecode, null)
48+
},
49+
onSelected = {
50+
settingsViewModel.videoPlayerForceAudioSoftDecode =
51+
!settingsViewModel.videoPlayerForceAudioSoftDecode
52+
},
53+
)
54+
}
55+
56+
item {
57+
SettingsListItem(
58+
headlineContent = "停止上一媒体项",
59+
trailingContent = {
60+
Switch(settingsViewModel.videoPlayerStopPreviousMediaItem, null)
61+
},
62+
onSelected = {
63+
settingsViewModel.videoPlayerStopPreviousMediaItem =
64+
!settingsViewModel.videoPlayerStopPreviousMediaItem
65+
},
66+
)
67+
}
4368

4469
item {
4570
val popupManager = LocalPopupManager.current
@@ -99,19 +124,6 @@ fun SettingsCategoryVideoPlayer(
99124
)
100125
}
101126

102-
item {
103-
SettingsListItem(
104-
headlineContent = "强制音频软解",
105-
trailingContent = {
106-
Switch(settingsViewModel.videoPlayerForceAudioSoftDecode, null)
107-
},
108-
onSelected = {
109-
settingsViewModel.videoPlayerForceAudioSoftDecode =
110-
!settingsViewModel.videoPlayerForceAudioSoftDecode
111-
},
112-
)
113-
}
114-
115127
item {
116128
SettingsListItem(
117129
headlineContent = "播放器自定义UA",

tv/src/main/java/top/yogiczy/mytv/tv/ui/screens/videoplayer/player/Media3VideoPlayer.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,9 @@ class Media3VideoPlayer(
291291
}
292292

293293
override fun prepare(url: String) {
294-
videoPlayer.stop()
294+
if (Configs.videoPlayerStopPreviousMediaItem)
295+
videoPlayer.stop()
296+
295297
contentTypeAttempts.clear()
296298
prepare(Uri.parse(url.let {
297299
if (url.endsWith("?")) "${it}t" else it

tv/src/main/java/top/yogiczy/mytv/tv/ui/utils/Configs.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ object Configs {
142142

143143
/** 播放器 渲染方式 */
144144
VIDEO_PLAYER_RENDER_MODE,
145+
146+
/** 播放器 停止上一媒体项 */
147+
VIDEO_PLAYER_STOP_PREVIOUS_MEDIA_ITEM,
145148
}
146149

147150
/** ==================== 应用 ==================== */
@@ -372,6 +375,11 @@ object Configs {
372375
)
373376
set(value) = SP.putInt(KEY.VIDEO_PLAYER_RENDER_MODE.name, value.value)
374377

378+
/** 播放器 停止上一媒体项 */
379+
var videoPlayerStopPreviousMediaItem: Boolean
380+
get() = SP.getBoolean(KEY.VIDEO_PLAYER_STOP_PREVIOUS_MEDIA_ITEM.name, false)
381+
set(value) = SP.putBoolean(KEY.VIDEO_PLAYER_STOP_PREVIOUS_MEDIA_ITEM.name, value)
382+
375383
enum class UiTimeShowMode(val value: Int) {
376384
/** 隐藏 */
377385
HIDDEN(0),

0 commit comments

Comments
 (0)