mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-31 08:08:19 +08:00
@@ -118,16 +118,12 @@ class Dash {
|
|||||||
this.minBufferTime,
|
this.minBufferTime,
|
||||||
this.video,
|
this.video,
|
||||||
this.audio,
|
this.audio,
|
||||||
this.dolby,
|
|
||||||
this.flac,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
int? duration;
|
int? duration;
|
||||||
double? minBufferTime;
|
double? minBufferTime;
|
||||||
List<VideoItem>? video;
|
List<VideoItem>? video;
|
||||||
List<AudioItem>? audio;
|
List<AudioItem>? audio;
|
||||||
Dolby? dolby;
|
|
||||||
Flac? flac;
|
|
||||||
|
|
||||||
Dash.fromJson(Map<String, dynamic> json) {
|
Dash.fromJson(Map<String, dynamic> json) {
|
||||||
duration = json['duration'];
|
duration = json['duration'];
|
||||||
@@ -138,8 +134,16 @@ class Dash {
|
|||||||
audio = (json['audio'] as List?)
|
audio = (json['audio'] as List?)
|
||||||
?.map<AudioItem>((e) => AudioItem.fromJson(e))
|
?.map<AudioItem>((e) => AudioItem.fromJson(e))
|
||||||
.toList();
|
.toList();
|
||||||
dolby = json['dolby'] != null ? Dolby.fromJson(json['dolby']) : null;
|
if (json['dolby']?['audio'] case List list) {
|
||||||
flac = json['flac'] != null ? Flac.fromJson(json['flac']) : null;
|
(audio ??= <AudioItem>[]).insertAll(
|
||||||
|
0,
|
||||||
|
list.map((e) => AudioItem.fromJson(e)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
final flacAudio = json['flac']?['audio'];
|
||||||
|
if (flacAudio != null) {
|
||||||
|
(audio ??= <AudioItem>[]).insert(0, AudioItem.fromJson(flacAudio));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,33 +304,3 @@ class FormatItem {
|
|||||||
codecs = (json['codecs'] as List?)?.fromCast<String>();
|
codecs = (json['codecs'] as List?)?.fromCast<String>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Dolby {
|
|
||||||
Dolby({
|
|
||||||
this.type,
|
|
||||||
this.audio,
|
|
||||||
});
|
|
||||||
|
|
||||||
// 1:普通杜比音效 2:全景杜比音效
|
|
||||||
int? type;
|
|
||||||
List<AudioItem>? audio;
|
|
||||||
|
|
||||||
Dolby.fromJson(Map<String, dynamic> json) {
|
|
||||||
type = json['type'];
|
|
||||||
audio = (json['audio'] as List?)
|
|
||||||
?.map<AudioItem>((e) => AudioItem.fromJson(e))
|
|
||||||
.toList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Flac {
|
|
||||||
Flac({this.display, this.audio});
|
|
||||||
|
|
||||||
bool? display;
|
|
||||||
AudioItem? audio;
|
|
||||||
|
|
||||||
Flac.fromJson(Map<String, dynamic> json) {
|
|
||||||
display = json['display'];
|
|
||||||
audio = json['audio'] != null ? AudioItem.fromJson(json['audio']) : null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1272,19 +1272,8 @@ class VideoDetailController extends GetxController
|
|||||||
|
|
||||||
/// 优先顺序 设置中指定质量 -> 当前可选的最高质量
|
/// 优先顺序 设置中指定质量 -> 当前可选的最高质量
|
||||||
AudioItem? firstAudio;
|
AudioItem? firstAudio;
|
||||||
final List<AudioItem> audiosList = data.dash!.audio ?? <AudioItem>[];
|
final audiosList = data.dash?.audio;
|
||||||
if (data.dash!.dolby?.audio != null &&
|
if (audiosList != null && audiosList.isNotEmpty) {
|
||||||
data.dash!.dolby!.audio!.isNotEmpty) {
|
|
||||||
// 杜比
|
|
||||||
audiosList.insert(0, data.dash!.dolby!.audio!.first);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.dash!.flac?.audio != null) {
|
|
||||||
// 无损
|
|
||||||
audiosList.insert(0, data.dash!.flac!.audio!);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (audiosList.isNotEmpty) {
|
|
||||||
final List<int> numbers = audiosList.map((map) => map.id!).toList();
|
final List<int> numbers = audiosList.map((map) => map.id!).toList();
|
||||||
int closestNumber = Utils.findClosestNumber(
|
int closestNumber = Utils.findClosestNumber(
|
||||||
plPlayerController.cacheAudioQa,
|
plPlayerController.cacheAudioQa,
|
||||||
|
|||||||
Reference in New Issue
Block a user