* refa: cdn

* feat: live cdn (WIP)

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* add live quality [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* mod: replace durl host

* tweak [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2025-11-15 20:12:21 +08:00
committed by GitHub
parent e589f27195
commit 27ae296b28
13 changed files with 297 additions and 156 deletions

View File

@@ -10,7 +10,9 @@ import 'package:PiliPlus/grpc/bilibili/app/listener/v1.pb.dart'
PlaylistSource,
PlayInfo,
ThumbUpReq_ThumbType,
ListOrder;
ListOrder,
DashItem,
ResponseUrl;
import 'package:PiliPlus/http/constants.dart';
import 'package:PiliPlus/http/ua_type.dart';
import 'package:PiliPlus/pages/common/common_intro_controller.dart'
@@ -226,7 +228,7 @@ class AudioController extends GetxController
(e) => e.id <= cacheAudioQa,
(a, b) => a.id > b.id ? a : b,
);
_onOpenMedia(VideoUtils.getCdnUrl(audio));
_onOpenMedia(VideoUtils.getCdnUrl(audio.playUrls));
} else if (playInfo.hasPlayUrl()) {
final playUrl = playInfo.playUrl;
final durls = playUrl.durl;
@@ -235,7 +237,7 @@ class AudioController extends GetxController
}
final durl = durls.first;
position.value = Duration.zero;
_onOpenMedia(VideoUtils.getDurlCdnUrl(durl));
_onOpenMedia(VideoUtils.getCdnUrl(durl.playUrls));
}
}
}
@@ -708,3 +710,17 @@ class AudioController extends GetxController
super.onClose();
}
}
extension on DashItem {
Iterable<String> get playUrls sync* {
yield baseUrl;
yield* backupUrl;
}
}
extension on ResponseUrl {
Iterable<String> get playUrls sync* {
yield url;
yield* backupUrl;
}
}