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