feat(app): 播放器增加清晰度档位入口

This commit is contained in:
Zhou Weidong committed 2026-10-20 04:37:42 +08:00
1 parent 30a5fa0776
commit 2b2b7e9913
9 files changed
+242 -1

No files matched your search

+8
View File
@@ -13,6 +13,7 @@ class PlayTicket {
this.durationSec = 0,
this.unlockCoin = 0,
this.previewSeconds = 0,
this.qualities = const [],
});
static const String free = 'FREE';
@@ -35,6 +36,9 @@ class PlayTicket {
/// 试看秒数:仅 `COIN_REQUIRED` 时有意义(付费解锁在 B2 做)。
final int previewSeconds;
/// 后端下发的清晰度档位(如 AUTO / 720P / 1080P),HLS 由播放器自动切换。
final List<String> qualities;
bool get needsUnlock =>
accessType == coinRequired || accessType == vipRequired;
@@ -50,6 +54,10 @@ class PlayTicket {
durationSec: jsonToInt(json['durationSec']),
unlockCoin: jsonToInt(json['unlockCoin']),
previewSeconds: jsonToInt(json['previewSeconds']),
qualities: (json['qualities'] as List? ?? const [])
.whereType<String>()
.where((quality) => quality.isNotEmpty)
.toList(),
);
}
}
@@ -91,6 +91,7 @@ class FakePlaybackRepository implements PlaybackRepository {
accessible: true,
accessType: PlayTicket.free,
playUrl: '/files/episode/fake-$episodeId.mp4?e=1&s=abc',
qualities: const ['AUTO', '720P', '1080P'],
);
}
}