# 音效文件播放 (/zh-CN/api-reference/rtc/harmonyos/play/audio-effect-file)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="toc_audio_effect_file"></a>

<a id="api_irtcengine_playeffect3"></a>

<a id="ariaid-title2"></a>

## playEffect [#playeffect]

播放指定的本地或在线音效文件。

<a id="api_irtcengine_playeffect3__prototype"></a>

```ts
public abstract playEffect(soundId:number,filePath:string,loopCount:number,pitch:number,pan:number,gain:number,publish?:boolean,startPos?:number):Promise<number>;
```

<a id="api_irtcengine_playeffect3__detailed_desc"></a>

<a id="api_irtcengine_playeffect3__playEffect-desc"></a>

你可以多次调用该方法，传入不同的 soundID 和 filePath，同时播放多个音效文件。为获得最佳用户体验，建议同时播放的音效文件不超过 3 个。

<a id="api_irtcengine_playeffect3__timing"></a>

### 调用时机 [#调用时机]

该方法在加入频道前后均可调用。

<a id="api_irtcengine_playeffect3__restriction"></a>

### 调用限制 [#调用限制]

无。

<a id="api_irtcengine_playeffect3__related"></a>

### 相关回调 [#相关回调]

音效文件播放结束后，SDK 会触发 onAudioEffectFinished 回调。

<a id="api_irtcengine_playeffect3__parameters"></a>

### 参数 [#参数]

<ParameterList>
<a id="soundid"></a>
<Parameter name="soundId">

音效的 ID。每个音效的 ID 具有唯一性。

</Parameter>
<a id="filepath"></a>
<Parameter name="filePath">

播放文件的地址。

</Parameter>
<a id="loopcount"></a>
<Parameter name="loopCount">

音效循环播放的次数。

- ≥ 0: 循环播放次数。例如，1 表示循环播放 1 次，即总计播放 2 次。
- -1: 无限循环播放。

</Parameter>
<a id="pitch"></a>
<Parameter name="pitch">

音效的音调，取值范围为 [0.5,2.0]。默认值为 1.0，表示原始音调。取值越小，则音调越低。

</Parameter>
<a id="pan"></a>
<Parameter name="pan">

音效的空间位置。取值范围为 [-1.0,1.0]，例如：

- -1.0：音效出现在左边
- 0.0：音效出现在正前方
- 1.0：音效出现在右边

</Parameter>
<a id="gain"></a>
<Parameter name="gain">

音效的音量。取值范围为 [0.0,100.0]。默认值为 100.0，表示原始音量。取值越小，则音量越低。

</Parameter>
<a id="publish"></a>
<Parameter name="publish">

是否将音效发布至远端：

- `true`: 将音效发布至远端。本地用户和远端用户都能听到音效。
- `false`: 不将音效发布至远端。只有本地用户能听到音效。

</Parameter>
<a id="startpos"></a>
<Parameter name="startPos">

音效文件的播放位置，单位为毫秒。

</Parameter>
</ParameterList>

<a id="api_irtcengine_playeffect3__return_values"></a>

### 返回值 [#返回值]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_irtcengine_stopeffect"></a>

<a id="ariaid-title3"></a>

## stopEffect [#stopeffect]

停止播放指定音效文件。

<a id="api_irtcengine_stopeffect__prototype"></a>

```ts
public abstract stopEffect(soundId:number):number;
```

<a id="api_irtcengine_stopeffect__detailed_desc"></a>

<a id="api_irtcengine_stopeffect__timing"></a>

### 调用时机 [#调用时机-1]

该方法需要在 [playEffect](/zh-CN/api-reference/rtc/harmonyos/play/audio-effect-file#api_irtcengine_playeffect3) 之后调用。

<a id="api_irtcengine_stopeffect__restriction"></a>

### 调用限制 [#调用限制-1]

无。

<a id="api_irtcengine_stopeffect__parameters"></a>

### 参数 [#参数-1]

<ParameterList>
<a id="soundid-1"></a>
<Parameter name="soundId">

指定音效文件的 ID。每个音效文件均有唯一的 ID。

</Parameter>
</ParameterList>

<a id="api_irtcengine_stopeffect__return_values"></a>

### 返回值 [#返回值-1]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_irtcengine_playalleffects"></a>

<a id="hmos463-ariaid-title4"></a>

## playAllEffects [#playalleffects]

播放所有音效文件。

<a id="api_irtcengine_playalleffects__prototype"></a>

```ts
public abstract playAllEffects(loopCount:number,pitch:number,pan:number,gain:number,publish:boolean):number;
```

<a id="api_irtcengine_playalleffects__detailed_desc"></a>

### 详情 [#详情]

多次调用 [preloadEffect](/zh-CN/api-reference/rtc/harmonyos/play/audio-effect-file#api_irtcengine_preloadeffect) 预加载多个音效文件后，你可以调用本方法播放所有预加载的音效文件。

<a id="api_irtcengine_playalleffects__parameters"></a>

### 参数 [#参数-2]

<ParameterList>
<a id="loopcount-1"></a>
<Parameter name="loopCount">

音效文件循环播放的次数：

- -1: 无限循环播放音效文件，直至调用 [stopEffect](/zh-CN/api-reference/rtc/harmonyos/play/audio-effect-file#api_irtcengine_stopeffect) 或 [stopAllEffects](/zh-CN/api-reference/rtc/harmonyos/play/audio-effect-file#api_irtcengine_stopalleffects) 后停止。
- 0: 播放音效文件一次。
- 1: 播放音效文件两次。

</Parameter>
<a id="pitch-1"></a>
<Parameter name="pitch">

音效的音调。取值范围为 [0.5,2.0]。默认值为 1.0，代表原始音调。取值越小，则音调越低。

</Parameter>
</ParameterList>

<ParameterList>
<a id="pan-1"></a>
<Parameter name="pan">

音效的空间位置。取值范围为 [-1.0,1.0]:

- -1.0: 音效出现在左边。
- 0: 音效出现在正前边。
- 1.0: 音效出现在右边。

</Parameter>
<a id="gain-1"></a>
<Parameter name="gain">

音效的音量。取值范围为 [0,100]。100 为默认值，代表原始音量。取值越小，则音量越低。

</Parameter>
<a id="publish-1"></a>
<Parameter name="publish">

是否将音效发布到远端：

- `true`: 将音效发布到远端。本地和远端用户都能听到该音效。
- `false`: （默认）不将音效发布到远端。只能本地用户能听到该音效。

</Parameter>
</ParameterList>

<a id="api_irtcengine_playalleffects__return_values"></a>

### 返回值 [#返回值-2]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_irtcengine_unloadalleffects"></a>

<a id="ariaid-title5"></a>

## unloadAllEffects [#unloadalleffects]

从内存释放所有预加载音效文件。

<a id="api_irtcengine_unloadalleffects__prototype"></a>

```ts
public abstract unloadAllEffects():number;
```

<a id="api_irtcengine_unloadalleffects__return_values"></a>

### 返回值 [#返回值-3]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="callback_irtcengineeventhandler_onaudioeffectfinished"></a>

<a id="ariaid-title4"></a>

## onAudioEffectFinished [#onaudioeffectfinished]

本地音效文件播放已结束回调。

<a id="callback_irtcengineeventhandler_onaudioeffectfinished__prototype"></a>

```ts
onAudioEffectFinished?:(soundId:number) => void;
```

<a id="callback_irtcengineeventhandler_onaudioeffectfinished__detailed_desc"></a>

### 详情 [#详情-1]

<a id="callback_irtcengineeventhandler_onaudioeffectfinished__desc"></a>

当播放音效结束后，会触发该回调。

<a id="callback_irtcengineeventhandler_onaudioeffectfinished__parameters"></a>

### 参数 [#参数-3]

<ParameterList>
<a id="soundid-2"></a>
<Parameter name="soundId">

指定音效的 ID。每个音效均有唯一的 ID。

</Parameter>
</ParameterList>

### 所属接口类 [#所属接口类]

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/harmonyos/rtc-interface-class#class_irtcengineeventhandler)

<a id="api_irtcengine_geteffectsvolume"></a>

## getEffectsVolume [#geteffectsvolume]

<a id="api_irtcengine_geteffectsvolume__shortdesc"></a>

获取音效文件的播放音量。

<a id="api_irtcengine_geteffectsvolume__prototype"></a>

```ts
public abstract getEffectsVolume():number;
```

<a id="api_irtcengine_geteffectsvolume__parameters"></a>

### 参数 [#参数-4]

<a id="api_irtcengine_geteffectsvolume__return_values"></a>

### 返回值 [#返回值-4]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_seteffectsvolume"></a>

## setEffectsVolume [#seteffectsvolume]

<a id="api_irtcengine_seteffectsvolume__shortdesc"></a>

设置音效文件的播放音量。

<a id="api_irtcengine_seteffectsvolume__prototype"></a>

```ts
public abstract setEffectsVolume(volume:number):number;
```

<a id="api_irtcengine_seteffectsvolume__parameters"></a>

### 参数 [#参数-5]

<ParameterList>
<a id="volume"></a>
<Parameter name="volume">

播放音量。取值范围为 [0,100]。默认值为 100，表示原始音量。

</Parameter>
</ParameterList>

<a id="api_irtcengine_seteffectsvolume__return_values"></a>

### 返回值 [#返回值-5]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_preloadeffect"></a>

## preloadEffect [#preloadeffect]

<a id="api_irtcengine_preloadeffect__shortdesc"></a>

将音效文件加载至内存。

<a id="api_irtcengine_preloadeffect__prototype"></a>

```ts
public abstract preloadEffect(soundId:number,filePath:string,startPos?:number):Promise<number>;
```

<a id="api_irtcengine_preloadeffect__parameters"></a>

### 参数 [#参数-6]

<ParameterList>
<a id="soundid-3"></a>
<Parameter name="soundId">

音效的 ID。每个音效的 ID 具有唯一性。

</Parameter>
<a id="filepath-1"></a>
<Parameter name="filePath">

文件路径：

</Parameter>
<a id="startpos-1"></a>
<Parameter name="startPos">

音效文件加载的起始位置，单位为毫秒。

</Parameter>
</ParameterList>

<a id="api_irtcengine_preloadeffect__return_values"></a>

### 返回值 [#返回值-6]

Promise 完成时返回操作结果。

<a id="api_irtcengine_setvolumeofeffect"></a>

## setVolumeOfEffect [#setvolumeofeffect]

<a id="api_irtcengine_setvolumeofeffect__shortdesc"></a>

设置指定音效文件的播放音量。

<a id="api_irtcengine_setvolumeofeffect__prototype"></a>

```ts
public abstract setVolumeOfEffect(soundId:number,volume:number):number;
```

<a id="api_irtcengine_setvolumeofeffect__parameters"></a>

### 参数 [#参数-7]

<ParameterList>
<a id="soundid-4"></a>
<Parameter name="soundId">

指定音效的 ID。每个音效均有唯一的 ID。

</Parameter>
<a id="volume-1"></a>
<Parameter name="volume">

播放音量。取值范围为 [0,100]。默认值为 100，表示原始音量。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setvolumeofeffect__return_values"></a>

### 返回值 [#返回值-7]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_pauseeffect"></a>

## pauseEffect [#pauseeffect]

<a id="api_irtcengine_pauseeffect__shortdesc"></a>

暂停音效文件播放。

<a id="api_irtcengine_pauseeffect__prototype"></a>

```ts
public abstract pauseEffect(soundId:number):number;
```

<a id="api_irtcengine_pauseeffect__parameters"></a>

### 参数 [#参数-8]

<ParameterList>
<a id="soundid-5"></a>
<Parameter name="soundId">

音效文件的 ID。

</Parameter>
</ParameterList>

<a id="api_irtcengine_pauseeffect__return_values"></a>

### 返回值 [#返回值-8]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_pausealleffects"></a>

## pauseAllEffects [#pausealleffects]

<a id="api_irtcengine_pausealleffects__shortdesc"></a>

暂停所有音效文件播放。

<a id="api_irtcengine_pausealleffects__prototype"></a>

```ts
public abstract pauseAllEffects():number;
```

<a id="api_irtcengine_pausealleffects__parameters"></a>

### 参数 [#参数-9]

<a id="api_irtcengine_pausealleffects__return_values"></a>

### 返回值 [#返回值-9]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_resumeeffect"></a>

## resumeEffect [#resumeeffect]

<a id="api_irtcengine_resumeeffect__shortdesc"></a>

恢复播放指定音效文件。

<a id="api_irtcengine_resumeeffect__prototype"></a>

```ts
public abstract resumeEffect(soundId:number):number;
```

<a id="api_irtcengine_resumeeffect__parameters"></a>

### 参数 [#参数-10]

<ParameterList>
<a id="soundid-6"></a>
<Parameter name="soundId">

音效文件的 ID。

</Parameter>
</ParameterList>

<a id="api_irtcengine_resumeeffect__return_values"></a>

### 返回值 [#返回值-10]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_resumealleffects"></a>

## resumeAllEffects [#resumealleffects]

<a id="api_irtcengine_resumealleffects__shortdesc"></a>

恢复播放所有音效文件。

<a id="api_irtcengine_resumealleffects__prototype"></a>

```ts
public abstract resumeAllEffects():number;
```

<a id="api_irtcengine_resumealleffects__parameters"></a>

### 参数 [#参数-11]

<a id="api_irtcengine_resumealleffects__return_values"></a>

### 返回值 [#返回值-11]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_stopalleffects"></a>

## stopAllEffects [#stopalleffects]

<a id="api_irtcengine_stopalleffects__shortdesc"></a>

停止播放所有音效文件。

<a id="api_irtcengine_stopalleffects__prototype"></a>

```ts
public abstract stopAllEffects():number;
```

<a id="api_irtcengine_stopalleffects__parameters"></a>

### 参数 [#参数-12]

<a id="api_irtcengine_stopalleffects__return_values"></a>

### 返回值 [#返回值-12]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_unloadeffect"></a>

## unloadEffect [#unloadeffect]

<a id="api_irtcengine_unloadeffect__shortdesc"></a>

从内存释放某个预加载的音效文件。

<a id="api_irtcengine_unloadeffect__prototype"></a>

```ts
public abstract unloadEffect(soundId:number):number;
```

<a id="api_irtcengine_unloadeffect__parameters"></a>

### 参数 [#参数-13]

<ParameterList>
<a id="soundid-7"></a>
<Parameter name="soundId">

指定音效文件的 ID。每个音效文件均有唯一的 ID。

</Parameter>
</ParameterList>

<a id="api_irtcengine_unloadeffect__return_values"></a>

### 返回值 [#返回值-13]

0：方法调用成功；小于 0：方法调用失败。

<a id="api_irtcengine_getvolumeofeffect"></a>

## getVolumeOfEffect [#getvolumeofeffect]

<a id="api_irtcengine_getvolumeofeffect__shortdesc"></a>

获取指定音效文件的播放音量。

<a id="api_irtcengine_getvolumeofeffect__prototype"></a>

```ts
public abstract getVolumeOfEffect(soundId:number):number;
```

<a id="api_irtcengine_getvolumeofeffect__parameters"></a>

### 参数 [#参数-14]

<ParameterList>
<a id="soundid-8"></a>
<Parameter name="soundId">

音效文件的 ID。

</Parameter>
</ParameterList>

<a id="api_irtcengine_getvolumeofeffect__return_values"></a>

### 返回值 [#返回值-14]

0：方法调用成功；小于 0：方法调用失败。
