mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-23 04:00:28 +08:00
tweaks (#1846)
* opt: live extra * opt: remove addPointer * opt: use ssd * opt: cache svg * opt: localToGlobal * opt: disabled icon * opt: onVideoDetailChange switch * fix --------- Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
committed by
GitHub
parent
4a3d827f7a
commit
e707764f84
@@ -147,76 +147,78 @@ class VideoPlayerServiceHandler extends BaseAudioHandler with SeekHandler {
|
||||
Uri getUri(String? cover) => Uri.parse(ImageUtils.safeThumbnailUrl(cover));
|
||||
|
||||
late final id = '$cid$herotag';
|
||||
MediaItem? mediaItem;
|
||||
if (data is VideoDetailData) {
|
||||
if ((data.pages?.length ?? 0) > 1) {
|
||||
final current = data.pages?.firstWhereOrNull(
|
||||
(element) => element.cid == cid,
|
||||
);
|
||||
final MediaItem mediaItem;
|
||||
switch (data) {
|
||||
case VideoDetailData(:final pages):
|
||||
if (pages != null && pages.length > 1) {
|
||||
final current = pages.firstWhereOrNull((e) => e.cid == cid);
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: current?.part ?? '',
|
||||
artist: data.owner?.name,
|
||||
duration: Duration(seconds: current?.duration ?? 0),
|
||||
artUri: getUri(data.pic),
|
||||
);
|
||||
} else {
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.title ?? '',
|
||||
artist: data.owner?.name,
|
||||
duration: Duration(seconds: data.duration ?? 0),
|
||||
artUri: getUri(data.pic),
|
||||
);
|
||||
}
|
||||
case EpisodeItem():
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: current?.part ?? '',
|
||||
artist: data.owner?.name,
|
||||
duration: Duration(seconds: current?.duration ?? 0),
|
||||
artUri: getUri(data.pic),
|
||||
title: data.showTitle ?? data.longTitle ?? data.title ?? '',
|
||||
artist: artist,
|
||||
duration: data.from == 'pugv'
|
||||
? Duration(seconds: data.duration ?? 0)
|
||||
: Duration(milliseconds: data.duration ?? 0),
|
||||
artUri: getUri(data.cover),
|
||||
);
|
||||
} else {
|
||||
case RoomInfoH5Data():
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.title ?? '',
|
||||
artist: data.owner?.name,
|
||||
title: data.roomInfo?.title ?? '',
|
||||
artist: data.anchorInfo?.baseInfo?.uname,
|
||||
artUri: getUri(data.roomInfo?.cover),
|
||||
isLive: true,
|
||||
);
|
||||
case Part():
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.part ?? '',
|
||||
artist: artist,
|
||||
duration: Duration(seconds: data.duration ?? 0),
|
||||
artUri: getUri(data.pic),
|
||||
artUri: getUri(cover),
|
||||
);
|
||||
}
|
||||
} else if (data is EpisodeItem) {
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.showTitle ?? data.longTitle ?? data.title ?? '',
|
||||
artist: artist,
|
||||
duration: data.from == 'pugv'
|
||||
? Duration(seconds: data.duration ?? 0)
|
||||
: Duration(milliseconds: data.duration ?? 0),
|
||||
artUri: getUri(data.cover),
|
||||
);
|
||||
} else if (data is RoomInfoH5Data) {
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.roomInfo?.title ?? '',
|
||||
artist: data.anchorInfo?.baseInfo?.uname,
|
||||
artUri: getUri(data.roomInfo?.cover),
|
||||
isLive: true,
|
||||
);
|
||||
} else if (data is Part) {
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.part ?? '',
|
||||
artist: artist,
|
||||
duration: Duration(seconds: data.duration ?? 0),
|
||||
artUri: getUri(cover),
|
||||
);
|
||||
} else if (data is DetailItem) {
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.arc.title,
|
||||
artist: data.owner.name,
|
||||
duration: Duration(seconds: data.arc.duration.toInt()),
|
||||
artUri: getUri(data.arc.cover),
|
||||
);
|
||||
} else if (data is BiliDownloadEntryInfo) {
|
||||
final coverFile = File(path.join(data.entryDirPath, PathUtils.coverName));
|
||||
final uri = coverFile.existsSync()
|
||||
? coverFile.absolute.uri
|
||||
: getUri(data.cover);
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.showTitle,
|
||||
artist: data.ownerName,
|
||||
duration: Duration(milliseconds: data.totalTimeMilli),
|
||||
artUri: uri,
|
||||
);
|
||||
case DetailItem(:final arc):
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: arc.title,
|
||||
artist: data.owner.name,
|
||||
duration: Duration(seconds: arc.duration.toInt()),
|
||||
artUri: getUri(arc.cover),
|
||||
);
|
||||
case BiliDownloadEntryInfo():
|
||||
final coverFile = File(
|
||||
path.join(data.entryDirPath, PathUtils.coverName),
|
||||
);
|
||||
final uri = coverFile.existsSync()
|
||||
? coverFile.absolute.uri
|
||||
: getUri(data.cover);
|
||||
mediaItem = MediaItem(
|
||||
id: id,
|
||||
title: data.showTitle,
|
||||
artist: data.ownerName,
|
||||
duration: Duration(milliseconds: data.totalTimeMilli),
|
||||
artUri: uri,
|
||||
);
|
||||
default:
|
||||
return;
|
||||
}
|
||||
if (mediaItem == null) return;
|
||||
// if (kDebugMode) debugPrint("exist: ${PlPlayerController.instanceExists()}");
|
||||
if (!PlPlayerController.instanceExists()) return;
|
||||
_item.add(mediaItem);
|
||||
|
||||
Reference in New Issue
Block a user