From ef4a87b478e007d4e04dc43d8ea12eff2961184f Mon Sep 17 00:00:00 2001 From: leiurayer <1432593898@qq.com> Date: Fri, 21 Oct 2022 23:40:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=85=88=E8=A7=A3=E6=9E=90=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E7=BC=96=E7=A0=81=E9=A1=BA=E5=BA=8F=E4=B8=BAAV1?= =?UTF-8?q?=E3=80=81HEVC=E3=80=81AVC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BiliApi/BiliUtils/Constant.cs | 20 ++--- src/DownKyi/Services/Utils.cs | 85 ++++--------------- 2 files changed, 26 insertions(+), 79 deletions(-) diff --git a/src/DownKyi.Core/BiliApi/BiliUtils/Constant.cs b/src/DownKyi.Core/BiliApi/BiliUtils/Constant.cs index c8a3fa2..72afb80 100644 --- a/src/DownKyi.Core/BiliApi/BiliUtils/Constant.cs +++ b/src/DownKyi.Core/BiliApi/BiliUtils/Constant.cs @@ -6,17 +6,17 @@ namespace DownKyi.Core.BiliApi.BiliUtils { private static readonly List resolutions = new List { - new Quality { Name = "超高清 8K", Id = 127 }, - new Quality { Name = "杜比视界", Id = 126 }, - new Quality { Name = "HDR 真彩", Id = 125 }, - new Quality { Name = "4K 超清", Id = 120 }, - new Quality { Name = "1080P 60帧", Id = 116 }, - new Quality { Name = "1080P 高码率", Id = 112 }, - new Quality { Name = "1080P 高清", Id = 80 }, - new Quality { Name = "720P 60帧", Id = 74 }, - new Quality { Name = "720P 高清", Id = 64 }, - new Quality { Name = "480P 清晰", Id = 32 }, new Quality { Name = "360P 流畅", Id = 16 }, + new Quality { Name = "480P 清晰", Id = 32 }, + new Quality { Name = "720P 高清", Id = 64 }, + new Quality { Name = "720P 60帧", Id = 74 }, + new Quality { Name = "1080P 高清", Id = 80 }, + new Quality { Name = "1080P 高码率", Id = 112 }, + new Quality { Name = "1080P 60帧", Id = 116 }, + new Quality { Name = "4K 超清", Id = 120 }, + new Quality { Name = "HDR 真彩", Id = 125 }, + new Quality { Name = "杜比视界", Id = 126 }, + new Quality { Name = "超高清 8K", Id = 127 }, }; private static readonly List codecIds = new List diff --git a/src/DownKyi/Services/Utils.cs b/src/DownKyi/Services/Utils.cs index b3e055a..732f305 100644 --- a/src/DownKyi/Services/Utils.cs +++ b/src/DownKyi/Services/Utils.cs @@ -89,40 +89,6 @@ namespace DownKyi.Services } } - /// - /// 设置音质 - /// - /// - /// - /// - private static ObservableCollection GetAudioQualityFormatList_old(PlayUrl playUrl, int defaultAudioQuality) - { - List audioQualityFormatList = new List(); - - if (playUrl.Dash.Audio == null) - { - return new ObservableCollection(); - } - - foreach (PlayUrlDashVideo audio in playUrl.Dash.Audio) - { - // 音质id大于设置画质时,跳过 - if (audio.Id > defaultAudioQuality) { continue; } - - Quality audioQuality = Constant.GetAudioQualities().FirstOrDefault(t => { return t.Id == audio.Id; }); - if (audioQuality != null) - { - ListHelper.AddUnique(audioQualityFormatList, audioQuality.Name); - } - } - - audioQualityFormatList.Sort(new StringLogicalComparer()); - audioQualityFormatList.Reverse(); - - return new ObservableCollection(audioQualityFormatList); - } - - /// /// 设置音质 /// @@ -244,52 +210,33 @@ namespace DownKyi.Services VideoQuality selectedVideoQuality = videoQualityList.FirstOrDefault(t => t.Quality == video.Id); if (selectedVideoQuality == null) { continue; } - if (videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].VideoCodecList.Count == 1) - { - // 当获取的视频没有设置的视频编码时,执行 - videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].SelectedVideoCodec = videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].VideoCodecList[0]; - } - // 设置选中的视频编码 - //switch (videoCodecs) - //{ - // case VideoCodecs.AVC: - // if (videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].VideoCodecList.Contains("H.264/AVC")) - // { - // videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].SelectedVideoCodec = "H.264/AVC"; - // } - // break; - // case VideoCodecs.HEVC: - // if (videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].VideoCodecList.Contains("H.265/HEVC")) - // { - // videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].SelectedVideoCodec = "H.265/HEVC"; - // } - // break; - // case VideoCodecs.NONE: - // break; - // default: - // break; - //} string videoCodecsName = codeIds.FirstOrDefault(t => t.Id == videoCodecs).Name; if (videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].VideoCodecList.Contains(videoCodecsName)) { videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].SelectedVideoCodec = videoCodecsName; } + else + { + // 当获取的视频没有设置的视频编码时 + foreach (Quality codec in codeIds) + { + if (videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].VideoCodecList.Contains(codec.Name)) + { + videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].SelectedVideoCodec = codec.Name; + } + + if (codec.Id == videoCodecs) + { + break; + } + } + } } return videoQualityList; } - /// - /// 根据输入的字符串判断是AVC还是HEVC - /// - /// - /// - //internal static string GetVideoCodecName(string origin) - //{ - // return origin.Contains("avc") ? "H.264/AVC" : origin.Contains("hev") ? "H.265/HEVC" : origin.Contains("dvh") || origin.Contains("hvc") ? "Dolby Vision" : ""; - //} - } }