YouTube嵌入 - 播放/暂停播放

Youtube embeded - play/pause playback

本文关键字:播放 暂停 嵌入 YouTube      更新时间:2023-09-26

我想使用YouTube嵌入并使用JavaScript Control使其播放/暂停。我已经检查了 api 文档但是所有这些情况都是指您嵌入网站上的iframe,但我想使用原始的YouTube网址而不是创建网页。

在此处查看用例(图片)

使用的示例网址: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

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);