Skip to content

Commit 9ef3f36

Browse files
committed
Merge branch 'develop' into feature/mobile
# Conflicts: # app/build.gradle.kts # buildSrc/src/main/kotlin/ProtobufConfiguration.kt # player/core/build.gradle.kts
2 parents bb5005a + a461f2c commit 9ef3f36

File tree

16 files changed

+95
-16
lines changed

16 files changed

+95
-16
lines changed

app/build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,13 @@ android {
158158
}
159159
}
160160

161+
composeCompiler {
162+
reportsDestination = layout.buildDirectory.dir("compose_build_reports")
163+
stabilityConfigurationFiles.addAll(
164+
layout.projectDirectory.file("compose_compiler_config.conf")
165+
)
166+
}
167+
161168
java {
162169
toolchain {
163170
languageVersion.set(JavaLanguageVersion.of(17))

app/compose_compiler_config.conf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
kotlin.collections.*
2+
kotlin.time.Duration
3+
4+
kotlinx.coroutines.CoroutineScope
5+
6+
androidx.paging.compose.LazyPagingItems

app/shared/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ android {
7474
lint{
7575
targetSdk = AppConfiguration.targetSdk
7676
}
77+
}
7778

78-
ksp {
79-
arg("room.schemaLocation", "$projectDir/schemas")
80-
}
79+
ksp {
80+
arg("room.schemaLocation", "$projectDir/schemas")
8181
}
8282

8383
java {

app/shared/src/main/kotlin/dev/aaa1115910/bv/component/buttons/FavoriteButton.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ import androidx.compose.foundation.layout.Arrangement
55
import androidx.compose.foundation.layout.ExperimentalLayoutApi
66
import androidx.compose.foundation.layout.FlowRow
77
import androidx.compose.foundation.layout.Row
8+
import androidx.compose.foundation.layout.heightIn
9+
import androidx.compose.foundation.layout.padding
810
import androidx.compose.foundation.layout.size
11+
import androidx.compose.foundation.rememberScrollState
12+
import androidx.compose.foundation.verticalScroll
913
import androidx.compose.material.icons.Icons
1014
import androidx.compose.material.icons.rounded.Done
1115
import androidx.compose.material.icons.rounded.Favorite
@@ -105,6 +109,10 @@ private fun FavoriteDialog(
105109
title = { Text(text = stringResource(R.string.favorite_dialog_title)) },
106110
text = {
107111
FlowRow(
112+
modifier = Modifier
113+
.heightIn(max = 320.dp)
114+
.verticalScroll(rememberScrollState())
115+
.padding(vertical = 8.dp),
108116
horizontalArrangement = Arrangement.spacedBy(8.dp),
109117
verticalArrangement = Arrangement.spacedBy(8.dp)
110118
) {

app/shared/src/main/kotlin/dev/aaa1115910/bv/util/Prefs.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,17 @@ object Prefs {
285285
dsm.getPreferenceFlow(PrefKeys.prefDefaultDanmakuMaskRequest).first()
286286
}
287287
set(value) = runBlocking { dsm.editPreference(PrefKeys.prefDefaultDanmakuMask, value) }
288+
289+
var enableFfmpegAudioRenderer: Boolean
290+
get() = runBlocking {
291+
dsm.getPreferenceFlow(PrefKeys.prefEnableFfmpegEndererRequest).first()
292+
}
293+
set(value) = runBlocking {
294+
dsm.editPreference(
295+
PrefKeys.prefEnableFfmpegAudioRenderer,
296+
value
297+
)
298+
}
288299
}
289300

290301
object PrefKeys {
@@ -327,6 +338,7 @@ object PrefKeys {
327338
val prefShowedRemoteControllerPanelDemoKey = booleanPreferencesKey("showed_rcpd")
328339
val prefPreferOfficialCdn = booleanPreferencesKey("prefer_official_cdn")
329340
val prefDefaultDanmakuMask = booleanPreferencesKey("prefer_enable_webmark")
341+
val prefEnableFfmpegAudioRenderer = booleanPreferencesKey("enable_ffmpeg_audio_renderer")
330342

331343
val prefIsLoginRequest = PreferenceRequest(prefIsLoginKey, false)
332344
val prefUidRequest = PreferenceRequest(prefUidKey, 0)
@@ -377,4 +389,5 @@ object PrefKeys {
377389
PreferenceRequest(prefShowedRemoteControllerPanelDemoKey, false)
378390
val prefPreferOfficialCdnRequest = PreferenceRequest(prefPreferOfficialCdn, false)
379391
val prefDefaultDanmakuMaskRequest = PreferenceRequest(prefDefaultDanmakuMask, false)
392+
val prefEnableFfmpegEndererRequest = PreferenceRequest(prefEnableFfmpegAudioRenderer, false)
380393
}

app/shared/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,8 @@
210210
<string name="settings_other_alpha_title">Alpha 版更新</string>
211211
<string name="settings_other_cookies_text">该功能不适合使用遥控器操作</string>
212212
<string name="settings_other_cookies_title">Cookies 导入/导出</string>
213+
<string name="settings_other_ffmpeg_audio_renderer_text">尝试使用 FFmpeg 播放硬解不兼容的音频</string>
214+
<string name="settings_other_ffmpeg_audio_renderer_title">启用音频软解</string>
213215
<string name="settings_other_firebase_text">这将帮助开发者更快地发现与解决大部分问题</string>
214216
<string name="settings_other_firebase_title">发送错误日志</string>
215217
<string name="settings_other_fps_text">在屏幕左上角显示 FPS,这需要重启 App</string>

app/tv/src/main/kotlin/dev/aaa1115910/bv/tv/activities/video/VideoPlayerV3Activity.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ class VideoPlayerV3Activity : ComponentActivity() {
9595
referer = when (Prefs.apiType) {
9696
ApiType.Web -> getString(R.string.video_player_referer)
9797
ApiType.App -> null
98-
}
98+
},
99+
enableFfmpegAudioRenderer = Prefs.enableFfmpegAudioRenderer
99100
)
100101
val videoPlayer = when (Prefs.playerType) {
101102
PlayerType.Media3 -> ExoPlayerFactory().create(this, options)

app/tv/src/main/kotlin/dev/aaa1115910/bv/tv/screens/settings/content/OtherSetting.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ fun OtherSetting(
3939
var showCookiesDialog by remember { mutableStateOf(false) }
4040
var showFps by remember { mutableStateOf(Prefs.showFps) }
4141
var updateAlpha by remember { mutableStateOf(Prefs.updateAlpha) }
42+
var enableFfmpegAudioRenderer by remember { mutableStateOf(Prefs.enableFfmpegAudioRenderer) }
4243

4344
Column(
4445
modifier = modifier.fillMaxSize(),
@@ -117,6 +118,17 @@ fun OtherSetting(
117118
)
118119
}
119120
}
121+
item {
122+
SettingSwitchListItem(
123+
title = stringResource(R.string.settings_other_ffmpeg_audio_renderer_title),
124+
supportText = stringResource(R.string.settings_other_ffmpeg_audio_renderer_text),
125+
checked = enableFfmpegAudioRenderer,
126+
onCheckedChange = {
127+
enableFfmpegAudioRenderer = it
128+
Prefs.enableFfmpegAudioRenderer = it
129+
}
130+
)
131+
}
120132
}
121133
}
122134

bili-api/src/main/kotlin/dev/aaa1115910/biliapi/entity/video/VideoDetail.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ data class VideoDetail(
183183
fun fromPlayerIcon(playerIcon: dev.aaa1115910.biliapi.http.entity.season.AppSeasonData.PlayerIcon?) =
184184
playerIcon?.let {
185185
PlayerIcon(
186-
idle = playerIcon.url2,
187-
moving = playerIcon.url1
186+
idle = playerIcon.url2 ?: return@let null,
187+
moving = playerIcon.url1 ?: return@let null
188188
)
189189
}
190190
}

bili-api/src/main/kotlin/dev/aaa1115910/biliapi/http/entity/season/AppSeasonData.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -325,12 +325,12 @@ data class AppSeasonData(
325325
val ctime: Int,
326326
@SerialName("drag_data")
327327
val dragData: JsonElement? = null,
328-
val hash1: String,
329-
val hash2: String,
328+
val hash1: String? = null,
329+
val hash2: String? = null,
330330
@SerialName("no_drag_data")
331331
val noDragData: JsonElement? = null,
332-
val url1: String,
333-
val url2: String
332+
val url1: String? = null,
333+
val url2: String? = null
334334
)
335335

336336
@Serializable

0 commit comments

Comments
 (0)