我想使用嵌入的YouTube,并使用JavaScript Control使其播放/暂停。
我检查了api documentation
但是所有这些情况都涉及您嵌入到网站上的iframe,但是我想使用原始的YouTube URL而不是创建网页。
See use case here (picture)
使用的示例网址:
https://www.youtube.com/embed/M7lc1UVf-VE?autohide=1&autoplay=1&enablejsapi=1
问题似乎是iframe没有ID,所以我尝试了许多JavaScript命令,但是播放器从不暂停或玩我的Qt按钮。
任何建议表示赞赏!
QString jsValue = "document.getElementById('ytplayer').pauseVideo();";
ui->webView->page()->mainFrame()->evaluateJavaScript(jsValue);
最佳答案
找到解决方案!
YouTube会生成一个唯一的ID,您首先需要获取该ID
QWebElement player = ui->webView->page()->mainFrame()->documentElement().findFirst("div[id=\"player\"]");
QWebElement embed = player.findFirst("embed");
QString embedID = embed.attribute("id");
QString jsToExecute = QString("document.getElementById('%1').playVideo();").arg(embedID);
ui->webView->page()->mainFrame()->evaluateJavaScript(jsToExecute);