From 7deee5028088875fd218149909a4ef9b19fa4371 Mon Sep 17 00:00:00 2001
From: leiurayer <1432593898@qq.com>
Date: Thu, 28 Jul 2022 11:03:24 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E6=97=A0=E6=9D=9C=E6=AF=94?=
=?UTF-8?q?=E8=A7=86=E7=95=8C=E6=97=B6=E6=94=AF=E6=8C=81=E6=9D=9C=E6=AF=94?=
=?UTF-8?q?=E5=85=A8=E6=99=AF=E5=A3=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/DownKyi/Services/Utils.cs | 41 ++++++++++++++-
.../ViewModels/PageViewModels/VideoPage.cs | 50 +++++++++----------
2 files changed, 64 insertions(+), 27 deletions(-)
diff --git a/src/DownKyi/Services/Utils.cs b/src/DownKyi/Services/Utils.cs
index 13f1206..6161ba6 100644
--- a/src/DownKyi/Services/Utils.cs
+++ b/src/DownKyi/Services/Utils.cs
@@ -95,7 +95,7 @@ namespace DownKyi.Services
///
///
///
- private static ObservableCollection GetAudioQualityFormatList(PlayUrl playUrl, int defaultAudioQuality)
+ private static ObservableCollection GetAudioQualityFormatList_old(PlayUrl playUrl, int defaultAudioQuality)
{
List audioQualityFormatList = new List();
@@ -122,6 +122,43 @@ namespace DownKyi.Services
return new ObservableCollection(audioQualityFormatList);
}
+
+ ///
+ /// 设置音质
+ ///
+ ///
+ ///
+ ///
+ private static ObservableCollection GetAudioQualityFormatList(PlayUrl playUrl, int defaultAudioQuality)
+ {
+ List audioQualityFormatList = new List();
+
+ if (playUrl.Dash.Audio != null && playUrl.Dash.Audio.Count > 0)
+ {
+ 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);
+ }
+ }
+ }
+
+ if (playUrl.Dash.Dolby.Audio != null && playUrl.Dash.Dolby.Audio.Count > 0)
+ {
+ ListHelper.AddUnique(audioQualityFormatList, Constant.GetAudioQualities().Last().Name);
+ }
+
+ audioQualityFormatList.Sort(new StringLogicalComparer());
+ audioQualityFormatList.Reverse();
+
+ return new ObservableCollection(audioQualityFormatList);
+ }
+
///
/// 设置画质 & 视频编码
///
@@ -191,7 +228,7 @@ namespace DownKyi.Services
// 设置选中的视频编码
VideoQuality selectedVideoQuality = videoQualityList.FirstOrDefault(t => t.Quality == video.Id);
- if(selectedVideoQuality == null) { continue; }
+ if (selectedVideoQuality == null) { continue; }
if (videoQualityList[videoQualityList.IndexOf(selectedVideoQuality)].VideoCodecList.Count == 1)
{
diff --git a/src/DownKyi/ViewModels/PageViewModels/VideoPage.cs b/src/DownKyi/ViewModels/PageViewModels/VideoPage.cs
index f04787b..2eb1b07 100644
--- a/src/DownKyi/ViewModels/PageViewModels/VideoPage.cs
+++ b/src/DownKyi/ViewModels/PageViewModels/VideoPage.cs
@@ -91,32 +91,32 @@ namespace DownKyi.ViewModels.PageViewModels
///
private void ExecuteVideoQualitySelectedCommand()
{
- // 杜比视界
- string dolby = string.Empty;
- try
- {
- var qualities = Constant.GetAudioQualities();
- dolby = qualities[3].Name;
- }
- catch (Exception e)
- {
- Core.Utils.Debugging.Console.PrintLine("ExecuteVideoQualitySelectedCommand()发生异常: {0}", e);
- LogManager.Error("ExecuteVideoQualitySelectedCommand", e);
- }
+ //// 杜比视界
+ //string dolby = string.Empty;
+ //try
+ //{
+ // var qualities = Constant.GetAudioQualities();
+ // dolby = qualities[3].Name;
+ //}
+ //catch (Exception e)
+ //{
+ // Core.Utils.Debugging.Console.PrintLine("ExecuteVideoQualitySelectedCommand()发生异常: {0}", e);
+ // LogManager.Error("ExecuteVideoQualitySelectedCommand", e);
+ //}
- if (VideoQuality != null && VideoQuality.Quality == 126 && PlayUrl != null && PlayUrl.Dash != null && PlayUrl.Dash.Dolby != null)
- {
- ListHelper.AddUnique(AudioQualityFormatList, dolby);
- AudioQualityFormat = dolby;
- }
- else
- {
- if (AudioQualityFormatList.Contains(dolby))
- {
- AudioQualityFormatList.Remove(dolby);
- AudioQualityFormat = AudioQualityFormatList[0];
- }
- }
+ //if (VideoQuality != null && VideoQuality.Quality == 126 && PlayUrl != null && PlayUrl.Dash != null && PlayUrl.Dash.Dolby != null)
+ //{
+ // ListHelper.AddUnique(AudioQualityFormatList, dolby);
+ // AudioQualityFormat = dolby;
+ //}
+ //else
+ //{
+ // if (AudioQualityFormatList.Contains(dolby))
+ // {
+ // AudioQualityFormatList.Remove(dolby);
+ // AudioQualityFormat = AudioQualityFormatList[0];
+ // }
+ //}
}
#endregion