gpt4 book ai didi

google-chrome-extension - Chrome 扩展中的 Youtube 播放器 API

转载 作者:行者123 更新时间:2023-12-05 07:55:54 24 4
gpt4 key购买 nike

我想在我的 YouTube Chrome 扩展程序中使用 Youtube 播放器 API。
我的目标是能够使用 pageAction 的弹出窗口从我的内容脚本控制播放器在 Youtube 网站上的控件。

事情是这样的-
单击弹出窗口中的“播放”按钮会向内容脚本发送消息,内容脚本接收消息并使用播放器 API 事件“playVideo()”播放视频。

因为内容脚本和页面本身是相互隔离的,所以我不能简单地从页面获取播放器的对象,据我所知,我不能使用消息从页面发送对象到内容脚本。

现在我可以通过使用 HTML5 视频事件来绕过所有这些麻烦,但不幸的是,这在直播流中不起作用,因为那里仍在使用 flash,所以我别无选择,只能加载和使用播放器 API ,我说的对吗?
有没有办法在 Youtube 网站上使用 URL 参数来控制播放器?
(我真的更喜欢一切,而不是加载一个额外的脚本和外部脚本)

在代码方面,我想获得帮助来设置能够加载外部脚本所需的权限。
我看到需要在manifest文件中声明一个content_security_policy,但是我不明白语法和如何写下来,所以我想有一个例子和任何其他需要的东西。

在我的内容脚本中,我使用取自 YT 播放器 API 文档的下一段代码来注入(inject)脚本:

var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

function onYouTubeIframeAPIReady() {
console.log('--- The YT player API is ready from content script! ---');
}

最佳答案

由于内容脚本无法访问页面 javascript 对象,因此在页面中注入(inject)一个脚本(官方文档解释了如何)。注入(inject)的脚本可以访问对象,然后可以使用消息传递或在 dom 上写入来与内容或弹出窗口进行通信。

关于google-chrome-extension - Chrome 扩展中的 Youtube 播放器 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29244379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com