# @dr\.pogodin/react-native-audio 中文文档

规范地址：https://npmcn.com/package/%40dr.pogodin/react-native-audio/

版本：1\.20\.2
npm 元数据更新时间：2026-10-25T21:50:08.481Z
中文译文更新时间：2026-11-12T19:17:32.957Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40dr.pogodin/react-native-audio
原文对照：https://npmcn.com/package/%40dr.pogodin/react-native-audio/?lang=original
项目主页：https://dr.pogodin.studio/docs/react-native-audio
源码仓库：https://github.com/birdofpreyru/react-native-audio

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

- 包体积（解压后）：126 kB，50 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：react \*，react-native \*，react-native-permissions \>=3\.8
- 首次发布：2021-06-03T15:19:33.846Z
- 最新版本发布：2026-10-25T21:50:08.157Z
- 近 30 天下载量：9932（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：62（近 12 个月 11 个）

## 中文简介

React 本地: 访问音频输入流

## 安装

```sh
npm install @dr.pogodin/react-native-audio
```

也可以使用：`pnpm add @dr.pogodin/react-native-audio`、`yarn add @dr.pogodin/react-native-audio`、`bun add @dr.pogodin/react-native-audio`

## README

# 反应原声

[![Latest NPM Release](https://img.shields.io/npm/v/@dr.pogodin/react-native-audio.svg)](https://www.npmjs.com/package/@dr.pogodin/react-native-audio) [![NPM Downloads](https://img.shields.io/npm/dm/@dr.pogodin/react-native-audio.svg)](https://www.npmjs.com/package/@dr.pogodin/react-native-audio) [![CircleCI](https://dl.circleci.com/status-badge/img/gh/birdofpreyru/react-native-audio/tree/master.svg?style=shield)](https://app.circleci.com/pipelines/github/birdofpreyru/react-native-audio) [![GitHub Repo stars](https://img.shields.io/github/stars/birdofpreyru/react-native-audio?style=social)](https://github.com/birdofpreyru/react-native-audio) [![Dr. Pogodin Studio](https://raw.githubusercontent.com/birdofpreyru/react-native-audio/master/.README/logo-dr-pogodin-studio.svg)](https://dr.pogodin.studio/docs/react-native-audio)

反应原生(RN)Android、iOS和macOS(Catalyst)平台的音频库,支持 [新设](https://reactnative.dev/docs/the-new-architecture/pillars-turbomodules) 财务报告和审定财务报表 [旧](https://reactnative.dev/docs/native-modules-intro) RN建筑. 它涵盖:

-   输入音频流(麦克风)收听/录音.
-   音频样本回放.
-   音频系统管理实用功能.
-   _还有东西要来_.

[![Sponsor](https://raw.githubusercontent.com/birdofpreyru/react-native-audio/master/.README/sponsor.svg)](https://github.com/sponsors/birdofpreyru)

### 赞助人:

[![](https://avatars.githubusercontent.com/u/521341?s=36&v=4)](https://github.com/liamjones)

### [贡献者](https://github.com/birdofpreyru/react-native-audio/graphs/contributors)

[![](https://avatars.githubusercontent.com/u/84858035?s=36&v=4)](https://github.com/Siminn-teiturg) [![](https://avatars.githubusercontent.com/u/20144632?s=36&v=4)](https://github.com/birdofpreyru)

## 内容

-   [安装](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-installation)
-   [开始](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-getting-started)
-   [API 参考](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-api-reference)
    -   [类](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-classes)
        -   [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream) ——代表个人输入音频流.
            -   [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor) ——创建 新设 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream) 举个例子.
            -   [addChunk 听牌( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-addchunklistener) —— 添加一个新的音频数据块收听器 溪流。 溪流.
            -   [添加错误倾听器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-adderrorlistener) ——在流中添加一个新的错误倾听器.
            -   [. destroy () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-destroy) ——破坏溪流 ——停止记录,并释放所有相关资源.
            -   [getChunk () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-getchunk) - 回返 [矩阵缓冲](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) 带有音频块字节.
            -   [.mute () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-mute) - 搅乱了溪流.
            -   [重新移动Chunk Listener ()](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-removechunklistener) — 删除音频数据块听器 从溪来.
            -   [. remove 错误倾听器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-removeerrorlistener) —— 说 从流中去除一个错误的收听器.
            -   [开始( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-start) ——启动音频流录音.
            -   [. stop () (中文)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-stop) - 拦住溪流.
            -   [.unmute () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-unmute) - 解开之前的哑巴.
            -   [活动](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-active) —— 说 _真实_ 当溪流开始并重新编码时.
            -   [自动格式](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audioformat) - 持有提供给 页:1 [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor)。 。 。 .
            -   [.adio 来源](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audiosource) - 持有提供给 页:1 [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor)。 。 。 .
            -   [频道配置](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-channelconfig) —— 持有提供给 页:1 [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor)。 。 。 .
            -   [已安装](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-muted) —— 说 _真实_ 当溪口失声的时候.
            -   [.样本](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-samplerate) ——将溪流的采样率控制在 \[[赫兹](https://en.wikipedia.org/wiki/Hertz)\[ \[ \] \[ \] \]. \].
            -   [样本大小](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-samplingsize) ——保持溪流采样(音频数据块) 大小,每个频道.
            -   [停止背景](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-stopinbackground) —— 说 _真实_ 如果该流被配置为停止 当应用程序离开前景时自动启动, 当它再次启动时自动启动 返回到前景.
        -   [样本显示器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer) ——代表音频样本播放器.
            -   [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-constructor) ——创建新 [样本显示器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer) 举个例子.
            -   [添加错误倾听器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-adderrorlistener) 添加一个新的 玩家的收听器出错 .
            -   [. destroy () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-destroy) - 摧毁玩家, 释放所有相关资源.
            -   [. 载( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-load) ——装入(额外)音频样本.
            -   [游戏( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-play) - 播放音频样本.
            -   [. remove 错误倾听器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-removeerrorlistener) —— 说 从玩家中删除错误的收听器.
            -   [. stop () (中文)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-stop) ——停止音频样本回放.
            -   [. 卸载( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-unload) ——卸载音频样本.
    -   [常数](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-constants)
        -   [审计( F)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audio_formats) - 提供有效 [自动格式](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audioformat) 数值.
        -   [审计来源](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audio_sources) - 提供有效 [.adio 来源](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audiosource) 数值.
        -   [章 次 页 次](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-channel_configs) - 提供有效 [频道配置](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-channelconfig) 数值.
        -   [(简体中文)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-is_mac_catalyst) —— 说 _真实_ 如果应用程序运行在 macOS (Catalyst) 上.
    -   [职能](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-functions)
        -   [配置审计系统( C)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-configaudiosystem) ——配置音频系统(输入和输出设备) 对于iOS,不做Android.
        -   [可输入( A)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-getinputavailable) - 决定 _真实_ 如果设备有可用的 音频输入源.
    -   [类型](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-types)
        -   [弹簧听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-chunklistener) ——音频数据能分解听众类型 连接到流 [addChunk 听牌( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-addchunklistener) 方法.
        -   [错误收听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-errorlistener) ——可以连接到的错误倾听器类型 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream) 财务报告和审定财务报表 [样本显示器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer) 使用相应的实例 `.addErrorListener()` 方法(见 [流派方法](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-adderrorlistener), (中文(简体) ), 财务报告和审定财务报表 [玩家方法](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-adderrorlistener)) (中文(简体) ).

## 安装

-   安装软件包及其对等依赖
    
    ```sh
    npx install-peerdeps @dr.pogodin/react-native-audio
    ```
    
-   跟随 [反应-内在-允许](https://github.com/zoontek/react-native-permissions) 用于设置您的应用程序的文档 用于 _记录-审计_ (Android)和(或) _麦克风_ (iOS)权限. **反应 - 内生 - 音频** 库将自动请求这些权限, 如果需要, 当流出时 [开始( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-start) 如果应用程序有 已正确配置以要求它们.
    

## 开始

一个更好的 _开始_ 教程将被写入, 但是主要的想法 这是:

```tsx
import {
  AUDIO_FORMATS,
  AUDIO_SOURCES,
  CHANNEL_CONFIGS,
  InputAudioStream,
} from "@dr.pogodin/react-native-audio";

function createAndStartAudioStream() {
  const stream = new InputAudioStream(
    AUDIO_SOURCES.RAW,
    44100, // Sample rate in Hz.
    CHANNEL_CONFIGS.MONO,
    AUDIO_FORMATS.PCM_16BIT,
    4096, // Sampling size.
  );

  stream.addErrorListener((error: Error) => {
    // Do something with a stream error.
  });

  stream.addChunkListener((chunkId: number) => {
    // You may pause the stream for chunk processing - this way you will not
    // receive new chunk events until stream.unmute() is called. Note, `chunkId`
    // argument is just a sequential chunk number, thus you may judge by it,
    // whether any chunks have been skipped between this callback calls.
    stream.mute();

    const chunk: ArrayBuffer = stream.getChunk(chunkId);

    // .getChunk(chunkId) returns "null" if `chunkId` value does not match ID
    // of the latest chunk in the stream. This way, starting with v1.20.0 of
    // the library, it will not crash with out-of-memory error even if you do
    // not use stream.mute() - the native layer only keeps the latest chunk
    // data, thus not consuming too much memory if your chunk processing is
    // slower then generation of the chunks.
    if (chunk) {
      // Do something with the chunk.
    }

    // Resumes the stream.
    stream.unmute();
  });

  stream.start();

  // Call stream.destroy() to stop the stream and release any associated
  // resources. If you need to temporarily stop and then resume the stream,
  // use .mute() and .unmute() methods instead.
}
```

除此之外,图书馆还将包括其他辅助方法 到音频输入和输出.

## API 参考

## 类

### 输入音频结构

```tsx
class InputAudioStream;
```

这个 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream) 类,如其名称所示,代表个人输入 从指定格式获取音频数据 音频源.

#### 构造器( )

```tsx
const stream = new InputAudioStream(
  audioSource: AUDIO_SOURCES,
  sampleRate: number,
  channelConfig: CHANNEL_CONFIGS,
  audioFormat: AUDIO_FORMATS,
  samplingSize: number,
  stopInBackground: boolean = true,
);
```

创建新 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream) 举个例子 新创建的流不 记录音频,在本地方不会消耗资源,直到其 [开始( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-start) 方法被称为.

-   `audioSource` —— 说 [审计来源](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audio_sources) - 音频源此流 我会听。 目前,它仅为Android所支持;在iOS上,此值 被忽略,该流从默认输入中获取音频数据 设备的来源.
-   `sampleRate` —— 说 **编号** - 抽样率\[[赫兹](https://en.wikipedia.org/wiki/Hertz)\[ \[ \] \[ \] \]. \]. 44100赫兹是建议值,因为它是唯一的 保证在所有Android(和其他许多)装置上工作.
-   `channelConfig` —— 说 [章 次 页 次](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-channel_configs) —— 说 _单曲_ 或者说 _立体声_ 流线 模式.
-   `audioFormat` —— 说 [审计( F)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audio_formats) ——音频格式.
-   `samplingSize` —— 说 **编号** 取样(数据块)大小, 以块中每个通道的样本数量表示.
-   `stopInBackground` —— 说 **布尔** - 可选的。 这个 _真实_ (默认) 当应用程序离开前景时,流会自动暂停, 当应用程序返回时,该流会自动恢复 预想.

#### addChunk 听牌( )

```ts
stream.addChunkListener(listener: ChunkListener): void;
```

向流中添加一个新的音频数据块听器。 见 [重新移动Chunk Listener ()](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-removechunklistener) ,然后将听众从溪流中移除.

**说明:** 为相同的收听者( R) 对流对多次调用是安全的 ——收听者仍不会多次被加入溪口.

-   `listener` —— 说 [弹簧听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-chunklistener) - 用音频调用 数据块当它们到达.

#### 添加错误倾听器( )

```ts
stream.addErrorListener(listener: ErrorListener): void;
```

向溪流添加新的错误倾听器。 见 [. remove 错误倾听器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-removeerrorlistener) ,然后将听众从溪流中移除.

**说明:** 为相同的收听者( R) 对流对多次调用是安全的 ——收听者仍不会多次被加入溪口.

-   `listener` —— 说 [错误收听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-errorlistener) ——错误调用 细节,如果在溪流中发生任何错误.

#### . destroy () (中文(简体) )

```ts
stream.destroy(): void;
```

摧毁溪流——停止录音,并释放所有相关 资源,包括本地和联署材料。 一旦一条溪被摧毁, 无法重用.

#### getChunk () (中文(简体) )

```ts
stream.getChunk(id: number): ArrayBuffer | null;
```

回返 [矩阵缓冲](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) 带有流中最新音频块的字节数据, 如果给出 `id` 匹配最新音频块的标识; 否则它返回 _无效_· ; _即说._ 如果您无法及时获取音频块数据, 它的数据将被丢弃 一旦下一个块变得可用—— 这种方式,即使你是 处理音频块的速度比生成的要慢, 您不使用 [.mute () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-mute)编号 :[.unmute () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-unmute) 方法,文库不会与外出相撞 出错(和收到) _无效_ 从 [getChunk () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-getchunk) 你会知道,你有 缺少一些音频块.

#### .mute () (中文(简体) )

```ts
stream.mute(): void;
```

声入溪. 一条已失声的流仍然继续捕获音频数据块 音频源,从而不断增加块ID(见 [弹簧听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-chunklistener), (中文(简体) ), 但是它不会向 JavaScript 层发送新的块事件 .

通话 [.mute () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-mute) 在哑音或非活性(非录音)音频流上 没有效果。 另见 [活动](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-active), (中文(简体) ), [已安装](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-muted)。 。 。 .

#### 重新移动Chunk Listener ()

```ts
stream.removeChunkListener(listener: ChunkListener): void;
```

从溪去去取听者. 没有操作如果给出 `listener` 没有 与溪相接. 见 [addChunk 听牌( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-addchunklistener) 以添加听众.

-   `listener` —— 说 [弹簧听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-chunklistener) - 监听器中断.

#### . remove 错误倾听器( )

```ts
stream.removeErrorListener(listener: ErrorListener): void;
```

从溪去去取听者. 没有操作如果给出 `listener` 没有 与溪相接. 见 [添加错误倾听器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-adderrorlistener) 连接听众.

-   `listener` —— 说 [错误收听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-errorlistener) - 监听器中断.

#### 开始( )

```ts
stream.start(): Promise<boolean>;
```

启动音频流记录。 这种方法实际上初始化了流 开始录音.

**说明:** 必要时,此方法将询问应用程序用户音频重编码 权限,使用 [反应-内在-允许](https://github.com/zoontek/react-native-permissions) 图书馆.

-   决定 **布尔** 价值 - _真实_ 如果溪流已经开始 成功且为 [活动](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-active), (中文(简体) ), _虚假_ 否则.

#### . stop () (中文)

```ts
stream.stop(): Promise<void>;
```

拦住溪口. 与 [.mute () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-mute) 方法, [. stop () (中文)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-stop) 实际停止 音频流并释放其资源在本土方面, 与 [. destroy () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-destroy) 它不释放其在联合来文中的资源 层_即说._ 因此,不放弃所有连接的听众的引用) 允许 [开始( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-start) 此流实例再次出现( 技术上将 将进入一条新的溪流 在本土一侧, 但这将是不透明的到终点 联合来文一方).

-   断取一出溪.

#### .unmute () (中文(简体) )

```ts
stream.unmute(): void;
```

取消先前的调用 [已安装](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-muted) 流线。 如果对不活动调用则无效果 (未启动),或已经变哑的流.

#### 活动

```ts
stream.active: boolean;
```

唯相读取. _真实_ 当溪流是 [开始](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-start) 和记录, _虚假_ 否则.

**说明:** [活动](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-active) 将会是 _真实_ 对于一个开始和 [已安装](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-muted) 流线.

#### 自动格式

```ts
stream.audioFormat: AUDIO_FORMATS;
```

唯相读取. 持有提供的音频格式值 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream)是因为 [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor)。 。 。 . [审计( F)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audio_formats) enum提供有效的格式值.

#### .adio 来源

```ts
stream.audioSource: AUDIO_SOURCES;
```

唯相读取. 持有提供给 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream)是因为 [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor)目前它只对Android设备有影响 为 iOS 忽略. [审计来源](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audio_sources) enum提供有效的音频源值.

#### 频道配置

```ts
stream.channelConfig: CHANNEL_CONFIGS;
```

唯相读取. 持有频道模式( R)_单曲_ 或者说 _立体声_(b) 提供给 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream)是因为 [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor)。 。 。 . [章 次 页 次](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-channel_configs) enum 提供有效的 频道模式值 .

#### 已安装

```ts
stream.muted: boolean;
```

唯相读取. _真实_ 当溪流被变音 [.mute () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-mute), (中文(简体) ), _虚假_ 否则.

#### .样本

```ts
stream.sampleRate: number;
```

唯相读取. 持有溪流提供的样本率 [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor), (中文(简体) ), 在 \[[赫兹](https://en.wikipedia.org/wiki/Hertz)\[ \[ \] \[ \] \]. \].

#### 样本大小

```ts
stream.samplingSize: number;
```

唯相读取. 持有流的采样(音频数据块)大小,提供给 溪流 [构造器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-constructor)。值是每个通道的样本数量, 因此,对于多通道流来说,实际块大小将是: 此数字,以及字节中的样本大小可能因不同而异 [自动格式](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audioformat)。 。 。 .

#### 停止背景

```ts
stream.stopInBackground: boolean;
```

唯相读取. _真实_ 如果将流设置为自动 [. stop () (中文)](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-stop) 当应用程序 叶子前景,和 [开始( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-start) 当它回到前方时.

### 样本显示器

```ts
class SamplePlayer;
```

代表音频样本播放器 。 准备装入内存 一组简短的音频片段,然后可以按要求低调播放 长生不老.

我们在Android上使用 [声音波](https://developer.android.com/reference/android/media/SoundPool) 请检查date=中的日期值 (帮助) 细节。 特别注意到: _每个解码后的声音内部限于一个 兆字节存储,whchi在44.1Hz立体声时表示约5.6秒 (以较低的抽样率或频道口罩计算,持续时间按比例较长) (单项)._

#### 构造器( )

```ts
const player = new SamplePlayer();
```

创建新 [样本显示器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer) 举个例子 注意这种创建 [样本显示器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer) 实例已经在本地一侧分配了一些资源,从而释放 那些资源,你必须使用它 [. destroy () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-destroy) 方法 一旦不再需要这个例子.

#### 添加错误倾听器( )

```ts
player.addErrorListener(listener: ErrorListener): void;
```

向玩家添加错误的收听器。 如果给出则不做 `listener` 实值 已添加到此玩家 .

-   `listener` —— 说 [错误收听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-errorlistener) - 错误的倾听者.

#### . destroy () (中文(简体) )

```ts
player.destroy(): Promise<void>;
```

破坏玩家实例,释放所有相关资源. 销毁一次 无法重用玩家实例 .

-   一旦完成就决定了.

#### . 载( )

```ts
player.load(sampleName: string, samplePath: string): Promise<void>;
```

将一个(额外)音频样本装入玩家.

-   `sampleName` —— 说 **字符串** - 样本名称,您将参考 在其他方法中,例如 [游戏( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-play), (中文(简体) ), [样板Player.stop ()](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-stop), (中文(简体) ), 财务报告和审定财务报表 [. 卸载( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-unload)如果与先前装入样品的名称相匹配,则 样本将被替换 .
-   `samplePath` —— 说 **字符串** ——设备上样本文件的路径. 目前仅支持从正则文件中装入样本(_譬如说._ 没有 从Android资产装入的可能性,而不首先将资产复制到 a 常规文件).
-   一旦样品被装入并解码,即可解码,从而准备播放.

#### 游戏( )

```ts
player.play(sampleName: string, loop: boolean): Promise<void>;
```

播放先前装入的音频样本 [. 载( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-load) 方法.

**注:** 在目前的执行中,开始播放样本总是停止 正在播放由同一玩家(如果有的话)播放的样本. 没有任何技术障碍支持在 与此同时,它只是需要一些更多的发展努力.

**注:** 使用 [添加错误倾听器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-sampleplayer-adderrorlistener) 方法 重播期间任何错误的细节。 虽然 [游戏( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-play) 如果回放失败启动, 它本身会拒绝 提供除失败事实之外的任何细节,它也不捕捉 任何进一步的错误(因为回放本身是同步的).

-   `sampleName` —— 说 **字符串** - 样本名称,在装入时被打乱 与 [. 载( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-load) 方法.
-   `loop` —— 说 **布尔** - 设定 _真实_ 无限循环样本; 或者说 _虚假_ 来玩一次.
-   启动播放后决定; 如果播放失败, 拒绝播放 由于一些错误.

#### . remove 错误倾听器( )

```ts
player.removeErrorListener(listener: ErrorListener): void;
```

删除 `listener` 从此 `player`如果听者不听,则什么都不做 连接到玩家.

-   `listener` —— 说 [错误收听器](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-errorlistener) —— 断开的收听器出错 .

#### . stop () (中文)

```ts
player.stop(sampleName: string): Promise<void>;
```

停止重播样本, 如果样本未被此播放则不做任何工作 游戏机.

-   `sampleName` —— 说 **字符串** ——样本名称.
-   一旦完成就决定了.

#### . 卸载( )

```ts
player.unload(sampleName: string): Promise<void>;
```

将音频样本提前装入此播放器 .

-   `sampleName` —— 说 **字符串** ——样本名称.
-   一旦完成就决定了.

## 常数

### 审计( F)

```ts
enum AUDIO_FORMATS {
  PCM_8BIT: number;
  PCM_16BIT: number;
  PCM_FLOAT: number;
};
```

提供有效 [自动格式](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audioformat) 数值。 见 [Android 文档](https://developer.android.com/reference/android/media/AudioFormat#encoding) 对于这三种格式的确切定义; 在iOS上应当相同 设备.

**说明:** 至少Android允许其它音频格式,我们可能包括 未来在这里.

### 审计来源

```ts
enum AUDIO_SOURCES {
  CAMCODER: number;
  DEFAULT: number;
  MIC: number;
  REMOTE_SUBMIX: number;
  RAW: number;
  VOICE_CALL: number;
  VOICE_COMMUNICATION: number;
  VOICE_DOWNLINK: number;
  VOICE_PERFORMANCE: number;
  VOICE_RECOGNITION: number;
  VOICE_UPLINK: number;
};
```

提供有效 [.adio 来源](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-audiosource) 数值。 现在,它们已经对Android生效了 只有设备,而且它们代表了下列相应的值: [Media Recorders. (原始内容存档于2018-10-21). 音频来源](https://developer.android.com/reference/android/media/MediaRecorder.AudioSource)。 。 。 .

### 章 次 页 次

```ts
enum CHANNEL_CONFIGS {
  MONO: number;
  STEREO: number;
};
```

提供有效 [频道配置](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-channelconfig) 数值.

**说明:** 现在它只提供了两个价值, _蒙古语_ 财务报告和审定财务报表 _定 约_不过, 至少Android似乎支持额外的频道,这些频道可以添加到 未来,看 [Android 音频格式文档](https://developer.android.com/reference/android/media/AudioFormat)。 。 。 .

### (简体中文)

```ts
const IS_MAC_CATALYST: boolean;
```

等数 _真实_ 如果应用程序运行在macOS(Catalyst)平台上; _虚假_ 否则.

## 职能

### 配置审计系统( C)

```ts
function configAudioSystem(): Promise<void>;
```

配置音频系统(输入输出设备).

目前它在Android上无所作为;在iOS上它(重新)配置音频 设定 _播放记录( R)_ 分类和启动会话.

**说明:** 在iOS上,如果 _播放记录( R)_ 设备中没有类别, 它设置 _重播_ 类别;如果两个类别都没有, 函数拒绝其结果承诺。 该功能还设置如下: iOS 音频会话的选项 : _允许蓝牙_, (中文(简体) ), _允许蓝牙A2DP_,以及 _默认语音_。 。 。 .

见 [iOS 文档](https://developer.apple.com/documentation/avfaudio/avaudiosession?language=objc) 关于iOS音频会话和分类的进一步详情.

-   一旦完成就决定了.

### 可输入( A)

```ts
function getInputAvailable(): Promise<boolean>;
```

-   决定: _真实_ 如果设备有可用的音频输入源, _虚假_ 否则.

## 类型

### 弹簧听器

```ts
type ChunkListener = (chunkId: number) => void;
```

音频数据类型 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream) 与 [addChunk 听牌( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-addchunklistener) 方法.

-   `chunkId` —— 说 **编号** - 后续块号,交给 [getChunk () (中文(简体) )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-getchunk) 获取块数据的方法。 当溪流是 [已安装](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-muted) 块 对跳过音频块的数字仍在递增,因此 `chunkId` 可用于判断溪流失声时是否漏出任何块.

### 错误收听器

```ts
type ErrorListener = (error: Error) => void;
```

可连接到一个错误的收听器类型 [输入音频结构](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream) 与 [添加错误倾听器( )](https://npmcn.com/package/%40dr.pogodin/react-native-audio/#readme-inputaudiostream-adderrorlistener) 方法.

-   `error` —— 说 [错误](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) ——流出错误.

## 常见问题

### @dr\.pogodin/react-native-audio 是什么？

React 本地: 访问音频输入流

### 如何安装 @dr\.pogodin/react-native-audio？

在项目目录运行 npm install @dr\.pogodin/react-native-audio，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\*）、react-native（\*）、react-native-permissions（\>=3\.8）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @dr\.pogodin/react-native-audio 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @dr\.pogodin/react-native-audio 支持 ESM 还是 CommonJS？

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

### @dr\.pogodin/react-native-audio 可以商用吗？

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

### @dr\.pogodin/react-native-audio 的下载量有多少？

根据 npm 官方下载统计，@dr\.pogodin/react-native-audio 在 2026/10/13 – 2026/11/11 这 30 天内被下载 9,932 次，日均约 331 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dr\.pogodin/react-native-audio 还在维护吗？

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

