diff --git a/lib/models/video/play/url.dart b/lib/models/video/play/url.dart index b891fa31..be56be9b 100644 --- a/lib/models/video/play/url.dart +++ b/lib/models/video/play/url.dart @@ -118,16 +118,12 @@ class Dash { this.minBufferTime, this.video, this.audio, - this.dolby, - this.flac, }); int? duration; double? minBufferTime; List? video; List? audio; - Dolby? dolby; - Flac? flac; Dash.fromJson(Map json) { duration = json['duration']; @@ -138,8 +134,16 @@ class Dash { audio = (json['audio'] as List?) ?.map((e) => AudioItem.fromJson(e)) .toList(); - dolby = json['dolby'] != null ? Dolby.fromJson(json['dolby']) : null; - flac = json['flac'] != null ? Flac.fromJson(json['flac']) : null; + if (json['dolby']?['audio'] case List list) { + (audio ??= []).insertAll( + 0, + list.map((e) => AudioItem.fromJson(e)), + ); + } + final flacAudio = json['flac']?['audio']; + if (flacAudio != null) { + (audio ??= []).insert(0, AudioItem.fromJson(flacAudio)); + } } } @@ -300,33 +304,3 @@ class FormatItem { codecs = (json['codecs'] as List?)?.fromCast(); } } - -class Dolby { - Dolby({ - this.type, - this.audio, - }); - - // 1:普通杜比音效 2:全景杜比音效 - int? type; - List? audio; - - Dolby.fromJson(Map json) { - type = json['type']; - audio = (json['audio'] as List?) - ?.map((e) => AudioItem.fromJson(e)) - .toList(); - } -} - -class Flac { - Flac({this.display, this.audio}); - - bool? display; - AudioItem? audio; - - Flac.fromJson(Map json) { - display = json['display']; - audio = json['audio'] != null ? AudioItem.fromJson(json['audio']) : null; - } -} diff --git a/lib/pages/video/controller.dart b/lib/pages/video/controller.dart index 08d55395..cf82cbae 100644 --- a/lib/pages/video/controller.dart +++ b/lib/pages/video/controller.dart @@ -1272,19 +1272,8 @@ class VideoDetailController extends GetxController /// 优先顺序 设置中指定质量 -> 当前可选的最高质量 AudioItem? firstAudio; - final List audiosList = data.dash!.audio ?? []; - if (data.dash!.dolby?.audio != null && - 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 audiosList = data.dash?.audio; + if (audiosList != null && audiosList.isNotEmpty) { final List numbers = audiosList.map((map) => map.id!).toList(); int closestNumber = Utils.findClosestNumber( plPlayerController.cacheAudioQa,