# @alexanderolsen/silence-listener-node 中文文档

规范地址：https://npmcn.com/package/%40alexanderolsen/silence-listener-node/

版本：1\.0\.3
npm 元数据更新时间：2022-04-04T12:39:08.333Z
中文译文更新时间：2026-11-06T03:13:35.216Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40alexanderolsen/silence-listener-node
原文对照：https://npmcn.com/package/%40alexanderolsen/silence-listener-node/?lang=original
项目主页：https://github.com/aolsenjazz/silence-listener-node#readme
源码仓库：https://github.com/aolsenjazz/silence-listener-node

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：30.7 kB，5 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2021-02-25T01:10:36.508Z
- 最新版本发布：2021-02-25T16:54:04.293Z
- 近 30 天下载量：5863（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

Pseudo-AudioNode 在一个音频流变得沉默时通知.

## 安装

```sh
npm install @alexanderolsen/silence-listener-node
```

也可以使用：`pnpm add @alexanderolsen/silence-listener-node`、`yarn add @alexanderolsen/silence-listener-node`、`bun add @alexanderolsen/silence-listener-node`

## README

# 静音收音机节点

![AppVeyor](https://img.shields.io/appveyor/build/aolsenjazz/silence-listener-node) [![Coverage Status](https://coveralls.io/repos/github/aolsenjazz/silence-listener-node/badge.svg?branch=main)](https://coveralls.io/github/aolsenjazz/silence-listener-node?branch=main) [![Maintainability](https://api.codeclimate.com/v1/badges/1b47d3d0a92f4def2455/maintainability)](https://codeclimate.com/github/aolsenjazz/silence-listener-node/maintainability) ![Depfu](https://img.shields.io/depfu/aolsenjazz/silence-listener-node)

静静听器节点是一个 [伪](https://github.com/WebAudio/web-audio-api/issues/251)\- 说吧[音频节点](https://developer.mozilla.org/en-US/docs/Web/API/AudioNode) 它引用一个调用函数,当一串音频流变得沉默或无法产生。 用途 [音频工作](https://developers.google.com/web/updates/2017/12/audio-worklet) 如果有的话,就回到 [脚本处理器节点](https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode) 当没有工作时.

## 安装

使用国家预防机制安装:

```bash
npm i @alexanderolsen/silence-listener-node
```

## 设置

要使用音频Worklet的功能,请 **必须** 复制 `sln.worklet.js` 文件输入 _/node modules/@alexanderolsen/ silence- listener-node/dist/ 互联网档案馆的存檔,存档日期2013-12-21_ 到图书馆能找到它的地方 此文件的默认位置位于服务器根( N)_/sln. worklet.js (英语)_) (中文(简体) ). 此位置可以使用 dict 的选项更改 `createSilenceListenerNode()`数字 :

```javascript
createSilenceListenerNode(context, nChannels, { 
    pathToWorklet: '/some/path/to/sln.worklet.js', // default '/sln.worklet.js'
});
```

见 **配置** 需要更多关于使用 `options` 下诏.

## 使用量

### 在模块中:

```javascript
import { createSilenceListenerNode } from '@alexanderolsen/silence-listener-node'; 

let context   = new AudioContext();
let nChannels = 2;
let options   = {}; // see **Configuration**
let buffSource = context.createBufferSource();

createSilenceListenerNode(context, nChannels, options)
    .then((silenceListenerNode) => {
        buffSource.connect(silenceListenerNode);
        silenceListenerNode.connect(context.destination);
        buffSource.start();
    });
```

或者说

```javascript
const createSilenceListenerNode = require('@alexanderolsen/silence-listener-node').createSilenceListenerNode; 

(async function() {
    let context   = new AudioContext();
    let nChannels = 2;
    let options   = {}; // see **Configuration**
    
    let buffSource = context.createBufferSource();
    let silenceListenerNode = await createSilenceListenerNode(context, nChannels, options);
    
    buffSource.connect(silenceListenerNode);
    silenceListenerNode.connect(context.destination);
    
    buffSource.start();
})();
```

### 在 HTML 中:

```html
<script src="https://cdn.jsdelivr.net/npm/@alexanderolsen/silence-listener-node"></script>
<script>
    var context   = new AudioContext();
    var nChannels = 2;
    var options   = {}; // see **Configuration**
    let buffSource = context.createBufferSource();

    SilenceListenerNode.createSilenceListenerNode(context, nChannels, options)
        .then((silenceListenerNode) => {
            buffSource.connect(silenceListenerNode);
            silenceListenerNode.connect(context.destination);
            buffSource.start();
        });
</script>
```

或使用静听-节点.js文件 _数字_ 文件夹 :

```html
<script src="silence-listener-node.js"></script>
```

## 配置

当创建 SilenceListener 节点实例时, 您拥有可用的选项数 :

```javascript
let context   = new AudioContext();
let nChannels = 2;

// entries are defaults
let options = {
    nInputs:   1,   // The number of inputs connected to this node. Probably 1
    nOutputs:  1,   // The number of outputs connected to this node. Probably 1
    batchSize: 512, // Stuck at 128 for `AudioWorklet`s. Can be powers of 2 where 256 < batchSize < 16384
    
    silenceThreshold: Math.floor(44100 / batchSize), // This is the number of silent batches which must
                                                     // occur before silence callbacks are invoked.
    pathToWorklet: '/sln.worklet.js' //The path to the worklet file
}

createSilenceListenerNode(context, nChannels, options).then((silenceListenerNode) => { ... });
```

#### `nInputs`

数目 `AudioNode`s与这个Silence ListenerNode事件有关. 默认 1.

#### `nOutputs`

产出的倒数 `AudioNode`s 此 SilenceLisner 节点连接到此实例 。 默认 1.

#### `batchSize`

修改处理的批量大小 `ScriptProcessorNode`。这不影响 `AudioWorklet`因为他们被卡在128。 如果使用脚本处理器节点,则必须是下列之一: `[256, 512, 1024, 2048, 4096, 8192, 16384]`。 。 。 .

#### `silenceThreshold`

在音频流之前必须出现的静态批次数将被标为静态. 默认是(大概)一秒钟的音频值.

#### `pathToWorklet`

您的地址 : _sln.worklet.js (英语)_ 文档。 默认位于服务器根 .

## API 参考

一旦你创建了静听节点 `createSilenceListener()` 或者说 `SilenceListenerNode.createSilenceListener()`,返回对象会暴露:

### `connect`

```javascript
/**
 * Connects SilenceListenerNode to the specific destination AudioNode
 *
 * @param {AudioNode} destination The node to connect to
 */
connect(destination) { ... }
```

### `disconnect`

```javascript
/** Disconnects from the currently-connected AudioNode */
disconnect() { ... }
```

### `subscribeToSilence`

```javascript
/**
 * Begin receiving silence notifications
 *
 * @param  { Function(isSilent, timeSinceLast) } callback Invoked whenever audio becomes or unbecomes silent
 * @return { String } id of the subscription. use with unsubscribeFromSilence(id) to stop receiving notifications
 */
subscribeToSilence(callback) { ... }
```

### `unsubscribeFromSilence`

```javascript
/**
 * Stop receiving silence events for given ID.
 * 
 * @param { String } id Identifier for callback subscription
 */
unsubscribeFromSilence(id) { ... }
```

### `getters`

```javascript
get silent()  { ... }
get silence() { ... } // for simplicity

get numberOfInputs() { ... }
get numberOfOutputs() { ... }
get channelCount() { ... }
get channelCountMode() { ... }
get channelInterpretation() { ... }

// e.g. let isSilent = silenceListenerNode.silent;
```

### `setters`

```javascript
set channelCount(channelCount) { ... }
set channelCountMode(channelCountMode) { ... }
set channelInterpretation(channelInterpretation) { ... }

// e.g. silenceListenerNode.channelInterpretation = 'speakers';
```

## 实例

运行任何服务器( R)[http-服务器](https://www.npmjs.com/package/http-server)项目目录中的:

```bash
cd silence-listener-node
http-server
```

访问 _当地主机:8080/实例/基本_ 或者说 _本地主机: 8080/ 实例/反应_ 在浏览器中。 实例 **必须是** 主机来自根目录,因为他们需要访问文件 _数字_。 。 。 .

## 从源建置

```bash
git clone https://github.com/aolsenjazz/silence-listener-node
cd silence-listener-node
npm run watch
```

制作文件放在 _数字_ 目录.

## 未实现(承诺) DOM Exception:用户中止请求.

当 SilenceListener Node 找不到您的 sln. worklet.js 时, 就会出现这个无益的错误消息 。 为了解决这个问题,确保你 `options.pathToWorklet` 设置正确,且文件在该位置实际上可以到达.

## 捐款

欢迎拉动请求。 对于重大变动,请先开出一个问题来讨论你想要改变什么.

## 许可证

许可证有: `LICENSE.md`。 。 。 .

## 常见问题

### @alexanderolsen/silence-listener-node 是什么？

Pseudo-AudioNode 在一个音频流变得沉默时通知\.

### 如何安装 @alexanderolsen/silence-listener-node？

在项目目录运行 npm install @alexanderolsen/silence-listener-node，或使用 pnpm add / yarn add / bun add。

### @alexanderolsen/silence-listener-node 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/alexanderolsen\_\_silence-listener-node 是否存在。

### @alexanderolsen/silence-listener-node 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @alexanderolsen/silence-listener-node 可以商用吗？

@alexanderolsen/silence-listener-node 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @alexanderolsen/silence-listener-node 的下载量有多少？

根据 npm 官方下载统计，@alexanderolsen/silence-listener-node 在 2026/10/06 – 2026/11/04 这 30 天内被下载 5,863 次，日均约 195 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @alexanderolsen/silence-listener-node 还在维护吗？

最新版本 1\.0\.3 发布于 2021/02/26（5 年前）；至今共发布 3 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/02/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

