我想使用嵌入的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);

10-08 05:30
查看更多