我正在使用 winform TabControl
显示WebBrowser
控件来显示YouTube视频。
然而,由于所有视频都是直接启动,因此有两个或更多视频会变得非常烦人。
我基本上需要查看是否有要更改的JS函数,html代码或简单的WebBrowser
属性,因此视频会暂停。
为视频质量找到类似内容可能会派上用场。
有没有人听说过/看过这个选项的存储位置?或者在手动设置质量时可能会调用Js函数?
修改
b.DocumentCompleted += delegate { b.DocumentText=b.DocumentText.Insert(b.DocumentText.IndexOf("class=\"video-stream html5-main-video\""), "autoplay=false ");};
b.Url = new System.Uri(inp[s], System.UriKind.Absolute);
基本上,这应该在每个webbrowser表单上添加一个新的Event处理程序,在创建期间调用的Uri加载时修改DocumentText
。
即使浏览器调试器显示
<video tabindex="-1" class="video-stream html5-main-video" controlslist="nodownload" style=... src=...></video>
这不在实际的源代码中。 但是我找到了
$oa=function(a){g.S(a.o,"video-stream");g.S(a.o,"html5-main-video");var b=a.app.g;b.zc&&a.o.setAttribute("data-no-fullscreen",!0);b.Oh&&(a.o.setAttribute("webkit-playsinline",""),a.o.setAttribute("playsinline",""));b.Nr&&a.o&&a.P(a.o,"click",a.o.play,a.o)};
base.js
中的。 youtube是否有可能从js生成html? 那么如何修改视频标签属性呢?
我尝试修改事件处理程序操作视频标记的时间,因为脚本或任何内容可能会抛出DocumentCompleted
个事件。
delegate (object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e){
if (e.Url.AbsolutePath != ((System.Windows.Forms.WebBrowser)sender).Url.AbsolutePath){
//...
然而它仍然失败,因为视频标签上没有出现特定类别。
我现在通过仅在选择浏览器标签时加载网址来避开此问题,如果有人找到真正的解决方案,请随时分享