gpt4 book ai didi

javascript - 下载完成后播放声音

转载 作者:行者123 更新时间:2023-12-03 02:07:52 25 4
gpt4 key购买 nike

大家好,我是chrome扩展程序开发的新手。我决定制作与下载管理器相同的chrome扩展程序。我正在尝试添加一个功能,例如当下载项完成时,必须播放音频。所以我试图对此进行研究并发现onCreated事件。我想这就是我想要的。

所以我尝试了类似的代码

DownloadItem.prototype.onCreated = function() {
if (this.state == 'complete') {
var c = new Audio('Link to an audio source');
c.play();
}

但是它什么也没做。下载完成后,我听不到声音。

这是我的 manifest.json

按照编辑。

在音频中起作用的主要代码是

popup.js
if (chrome.downloads) {
DownloadManager.loadItems();
chrome.downloads.onCreated.addListener(function(item) {
DownloadManager.getOrCreate(item);
DownloadManager.showNew();
DownloadManager.startPollingProgress();
});

chrome.downloads.onChanged.addListener(function(delta) {
var item = DownloadManager.getItem(delta.id);
if (item) {
item.onChanged(delta);
}
});

chrome.downloads.onErased.addListener(function(id) {
var item = DownloadManager.getItem(id);
if (!item) {
return;
}
item.onErased();
DownloadManager.loadItems();
});

chrome.downloads.onChanged.addListener(function(delta) {
if (delta.state.current == "complete") {
var c = new Audio('http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3');
c.play();
}
});

表现
{"name": "__MSG_extName__",
"version": "0.3",
"manifest_version": 2,
"description": "__MSG_extDesc__",
"icons": {"128": "icon128.png"},
"browser_action": {
"default_icon": {
"19": "icon19.png",
"38": "icon38.png"},
"default_title": "__MSG_extName__",
"default_popup": "popup.html"},
"background": {"persistent": false, "scripts": ["background.js"]},
"default_locale": "en",
"optional_permissions": ["management"],
"permissions": ["downloads", "downloads.open", "downloads.shelf", "notifications"]}

整个代码可以在 here中找到

最佳答案

首先,这是一个错误的事件。 onCreated显然应该在创建下载时触发​​,因此可以保证不会完成。而且它不会再次发射。

接下来,您使用的是Chrome API events错误。

  • 它们没有附加到特定的DownloadItem上,而是在全局范围内调度,即chrome.downloads.onCreated
  • 事件不是要执行的函数(就像HTML元素上的onclick一样),它是一个带有addListener方法来附加处理程序的对象。

  • 放在一起,看看 chrome.downloads API,您需要这样做:
    chrome.downloads.onChanged.addListener(function(delta) {
    if (delta.state.current == "complete") {
    // Play sound
    }
    });

    关于javascript - 下载完成后播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26659579/

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