opt: video pic showing

This commit is contained in:
bggRGjQaUbCoE
2024-09-03 18:05:42 +08:00
parent e4d97ace6a
commit f576e17b79
6 changed files with 56 additions and 31 deletions

View File

@@ -40,7 +40,7 @@ class NetworkImgLayer extends StatelessWidget {
Widget build(BuildContext context) {
final int defaultImgQuality = GlobalData().imgQuality;
final String imageUrl =
'${src!.startsWith('//') ? 'https:${src!}' : src!}@${quality ?? defaultImgQuality}q.webp';
'${src?.startsWith('//') == true ? 'https:$src' : src}@${quality ?? defaultImgQuality}q.webp';
int? memCacheWidth, memCacheHeight;
if (width > height || (origAspectRatio != null && origAspectRatio! > 1)) {
@@ -66,7 +66,8 @@ class NetworkImgLayer extends StatelessWidget {
child: CachedNetworkImage(
imageUrl: imageUrl,
width: width,
height: ignoreHeight == null || ignoreHeight == false? height:null,
height:
ignoreHeight == null || ignoreHeight == false ? height : null,
memCacheWidth: memCacheWidth,
memCacheHeight: memCacheHeight,
fit: BoxFit.cover,

View File

@@ -245,7 +245,11 @@ class VideoHttp {
var res = await Request().get(Api.videoIntro, data: {'bvid': bvid});
VideoDetailResponse result = VideoDetailResponse.fromJson(res.data);
if (result.code == 0) {
return {'status': true, 'data': result.data!};
return {
'status': true,
'data': result.data!,
'pic': result.data?.pic ?? '',
};
} else {
// Map errMap = {
// -400: '请求错误',

View File

@@ -30,7 +30,7 @@ class VideoDetailController extends GetxController
RxInt danmakuCid = 0.obs;
String heroTag = Get.arguments['heroTag'];
// 视频详情
Map videoItem = {};
RxMap videoItem = {}.obs;
// 视频类型 默认投稿视频
SearchType videoType = Get.arguments['videoType'] ?? SearchType.video;

View File

@@ -114,11 +114,15 @@ class VideoIntroController extends GetxController {
queryVideoIntro();
}
late final videoDetailController =
Get.find<VideoDetailController>(tag: heroTag);
// 获取视频简介&分p
void queryVideoIntro() async {
var result = await VideoHttp.videoIntro(bvid: bvid);
if (result['status']) {
videoDetail.value = result['data']!;
videoDetailController.videoItem['pic'] = result['pic']!;
if (videoDetail.value.pages != null &&
videoDetail.value.pages!.isNotEmpty &&
lastPlayCid.value == 0) {

View File

@@ -130,4 +130,10 @@ class VideoReplyController extends GetxController {
void animToTop() {
scrollController.animToTop();
}
@override
void onClose() {
scrollController.dispose();
super.onClose();
}
}

View File

@@ -677,7 +677,8 @@ class _VideoDetailPageState extends State<VideoDetailPage>
right: 0,
child: GestureDetector(
onTap: handlePlay,
child: NetworkImgLayer(
child: Obx(
() => NetworkImgLayer(
type: 'emote',
src: videoDetailController
.videoItem['pic'],
@@ -688,6 +689,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
),
),
),
),
manualPlayerWidget,
]
],
@@ -798,7 +800,8 @@ class _VideoDetailPageState extends State<VideoDetailPage>
right: 0,
child: GestureDetector(
onTap: handlePlay,
child: NetworkImgLayer(
child: Obx(
() => NetworkImgLayer(
type: 'emote',
src: videoDetailController.videoItem['pic'],
width: videoWidth,
@@ -808,6 +811,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
),
),
),
),
manualPlayerWidget,
]
]),
@@ -897,7 +901,8 @@ class _VideoDetailPageState extends State<VideoDetailPage>
right: 0,
child: GestureDetector(
onTap: handlePlay,
child: NetworkImgLayer(
child: Obx(
() => NetworkImgLayer(
type: 'emote',
src: videoDetailController.videoItem['pic'],
width: videoWidth,
@@ -907,6 +912,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
),
),
),
),
manualPlayerWidget,
]
]),
@@ -993,7 +999,8 @@ class _VideoDetailPageState extends State<VideoDetailPage>
right: 0,
child: GestureDetector(
onTap: handlePlay,
child: NetworkImgLayer(
child: Obx(
() => NetworkImgLayer(
type: 'emote',
src: videoDetailController.videoItem['pic'],
width: videoWidth,
@@ -1003,6 +1010,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
),
),
),
),
manualPlayerWidget,
]
],
@@ -1097,7 +1105,8 @@ class _VideoDetailPageState extends State<VideoDetailPage>
right: 0,
child: GestureDetector(
onTap: handlePlay,
child: NetworkImgLayer(
child: Obx(
() => NetworkImgLayer(
type: 'emote',
src: videoDetailController
.videoItem['pic'],
@@ -1108,6 +1117,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
),
),
),
),
manualPlayerWidget,
]
],