You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JS检测任意网站的声音播放并触发自定义代码?

实现网站播放声音时触发自定义提示的JS方案

可以实现,核心是通过拦截网页中音频播放的关键API或事件,来触发自定义逻辑。以下是具体的实现方案:

针对常用音频播放方式的拦截方法

1. 拦截<audio>标签的播放事件

大部分网站会用<audio>标签播放通知音,我们可以重写它的play方法,在音频播放时触发自定义代码:

// 保存原生play方法,避免覆盖后丢失原有功能
const originalAudioPlay = HTMLAudioElement.prototype.play;

// 重写play方法
HTMLAudioElement.prototype.play = async function() {
  // 先执行原生的播放逻辑
  const playResult = await originalAudioPlay.apply(this, arguments);
  // 触发自定义提示逻辑
  alert('有声音正在播放');
  // 这里可以替换成你需要的自定义代码,比如发送浏览器通知、记录日志等
  return playResult;
};

2. 处理Web Audio API的播放场景

部分网站会使用Web Audio API播放音频,这种情况下可以拦截音频源节点的start方法:

// 保存原生start方法
const originalSourceStart = AudioBufferSourceNode.prototype.start;

// 重写start方法
AudioBufferSourceNode.prototype.start = function() {
  // 触发自定义提示
  alert('有声音正在播放');
  // 执行原生的播放启动逻辑
  originalSourceStart.apply(this, arguments);
};

代码注入方式

  • 临时注入:打开浏览器开发者工具(F12)的Console面板,直接粘贴代码回车执行即可生效
  • 持久化注入:使用Tampermonkey等脚本管理工具,将代码封装成用户脚本,设置目标网站(比如Facebook)后,打开网站时会自动注入代码

注意事项

  • 不同网站的音频实现逻辑可能有差异,比如部分网站会对音频方法做封装或混淆,可能需要针对目标网站调整拦截的API
  • 浏览器的隐私或安全策略可能会限制某些操作(比如自动弹出通知需要用户授权)

内容的提问来源于stack exchange,提问作者delphirules

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:33:22