如何在WPF窗口的CefSharp中显示高清YouTube播放列表视频
YouTube播放列表在CefSharp WPF嵌入窗口中画质不一致问题
我遇到这个问题已经两周了,一开始以为YouTube高清画质需要等待加载,但这么久过去仍无改善。我有两个均以HD格式上传的YouTube播放列表,在CefSharp嵌入的WPF窗口网页项目里表现完全不同:一个能正常显示HD画质,另一个只能显示SD画质。我试过所有能想到的设置,都没法让那个画质差的播放列表显示高清。
该YouTube频道默认画质为HD,且在Firefox、Edge等浏览器中打开index.html文件时,两个播放列表都能正常显示HD,唯独在CefSharp中,那个播放列表没有高清选项。
不同环境下的表现
CefSharp WPF窗口中
- 低画质播放列表(配图)
- 高清画质播放列表(配图)
其他浏览器(Firefox、Edge)中
- 低画质播放列表(配图)
- 高清画质播放列表(配图)
当前环境信息
使用的CefSharp NuGet包版本:CefSharp.Common、CefSharp.Wpf、CefSharp.OffScreen 109.1.110
相关代码片段
CefSharp初始化设置
Cef.EnableHighDPISupport(); if (settings.CefCommandLineArgs.ContainsKey("enable-system-flash")) { settings.CefCommandLineArgs["enable-system-flash"] = "0"; } else { settings.CefCommandLineArgs.Add("enable-system-flash", "0"); } var featuresToDisable = "NetworkService,VizDisplayCompositor"; if (WpfUtils.IsDarkThemeUsed()) { settings.CefCommandLineArgs.Add("force-dark-mode", "1"); } else { featuresToDisable = $"{featuresToDisable},DarkMode"; } settings.EnableAudio(); settings.CefCommandLineArgs.Add("no-proxy-server"); //settings.CefCommandLineArgs.Add("disable-plugins-discovery", "1"); //settings.CefCommandLineArgs.Add("disable-remote-playback-api", "1"); settings.CefCommandLineArgs.Add("disable-sync", "1"); settings.CefCommandLineArgs.Add("disable-wake-on-wifi", "1"); settings.CefCommandLineArgs.Add("disable-voice-input", "1"); settings.CefCommandLineArgs.Add("disable-features", featuresToDisable); settings.CefCommandLineArgs.Add("disable-gpu-shader-disk-cache", "1"); settings.CefCommandLineArgs.Add("disable-gpu-vsync"); settings.SetOffScreenRenderingBestPerformanceArgs(); Cef.Initialize(settings, performDependencyCheck: false, browserProcessHandler: null);
YouTube播放器iframe API代码
vid_frame[m] = new YT.Player('vid_frame' + m, { width: '1280', height: '720', videoId: vidIDs[n][0], host: 'https://www.youtube-nocookie.com', playerVars: { 'html5': 1, 'showinfo': showVideoInfo, 'autoplay': 1, 'disablekb': 1, 'controls': showPlayerControls, 'playsinline': 1, 'modestbranding': 1, 'hl': 'en-US', 'rel': showRelatedVideos, 'widget-referrer': 'resource://web' }, frameborder: 0, enablejsapi: 1, events: { 'onStateChange': onPlayerStateChange } });
问题诉求
我希望两个播放列表在CefSharp和其他浏览器中都能显示HD画质。请问问题可能出在哪里?是什么观看条件影响了其中一个播放列表的画质?可参考YouTube iframe API参考文档(2019年10月24日更新版本)。
内容的提问来源于stack exchange,提问作者Erick's
相关产品推荐
相关产品推荐

