# 播放器控制 (/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-control)

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

<a id="toc_mediaplayer_control"></a>

<a id="api_imediaplayer_adjustplayoutvolume"></a>

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

## AdjustPlayoutVolume [#adjustplayoutvolume]

调节本地播放音量。

<a id="api_imediaplayer_adjustplayoutvolume__prototype"></a>

```csharp
public abstract int AdjustPlayoutVolume(int volume);
```

<a id="api_imediaplayer_adjustplayoutvolume__detailed_desc"></a>

<a id="api_imediaplayer_adjustplayoutvolume__timing"></a>

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

加入频道前后均可调用。

<a id="api_imediaplayer_adjustplayoutvolume__parameters"></a>

### 参数 [#参数]

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

本地播放音量，取值范围从 0 到 100：

- 0: 无声。
- 100: （默认）媒体文件的原始播放音量。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_adjustplayoutvolume__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_adjustpublishsignalvolume"></a>

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

## AdjustPublishSignalVolume [#adjustpublishsignalvolume]

调节远端用户听到的音量。

<a id="api_imediaplayer_adjustpublishsignalvolume__prototype"></a>

```csharp
public abstract int AdjustPublishSignalVolume(int volume);
```

<a id="api_imediaplayer_adjustpublishsignalvolume__detailed_desc"></a>

连接到声网服务器后，你可以调用该方法，调节远端用户听到的媒体文件的音量。

<a id="api_imediaplayer_adjustpublishsignalvolume__timing"></a>

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

加入频道前后均可调用。

<a id="api_imediaplayer_adjustpublishsignalvolume__parameters"></a>

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

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

信号音量，取值范围从 0 到 400：

- 0: 无声。
- 100: （默认）媒体文件的原始音量。
- 400: 原始音量的四倍（自带溢出保护）。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_adjustpublishsignalvolume__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_mute"></a>

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

## Mute [#mute]

设置是否静音。

<a id="api_imediaplayer_mute__prototype"></a>

```csharp
public abstract int Mute(bool muted);
```

<a id="api_imediaplayer_mute__detailed_desc"></a>

<a id="api_imediaplayer_mute__timing"></a>

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

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

<a id="api_imediaplayer_mute__parameters"></a>

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

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

静音选项。

- true：静音。
- false：（默认）不静音。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_mute__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_pause"></a>

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

## Pause [#pause]

暂停播放。

<a id="api_imediaplayer_pause__prototype"></a>

```csharp
public abstract int Pause();
```

<a id="api_imediaplayer_pause__detailed_desc"></a>

<a id="api_imediaplayer_pause__timing"></a>

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

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

<a id="api_imediaplayer_pause__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_play"></a>

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

## Play [#play]

播放媒体文件。

<a id="api_imediaplayer_play__prototype"></a>

```csharp
public abstract int Play();
```

<a id="api_imediaplayer_play__detailed_desc"></a>

<a id="api_imediaplayer_play__timing"></a>

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

- 在调用 [Open](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_open) 或 [OpenWithMediaSource](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_openwithmediasource) 打开媒体文件、且收到 [OnPlayerSourceStateChanged](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged) 回调报告状态为 PLAYER_STATE_OPEN_COMPLETED 后，调用该方法。
- 在调用 [Seek](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-control#api_imediaplayer_seek) 后调用该方法。

<a id="api_imediaplayer_play__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_playpreloadedsrc"></a>

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

## PlayPreloadedSrc [#playpreloadedsrc]

播放预加载的媒体资源。

<a id="api_imediaplayer_playpreloadedsrc__prototype"></a>

```csharp
public abstract int PlayPreloadedSrc(string src);
```

<a id="api_imediaplayer_playpreloadedsrc__detailed_desc"></a>

调用 [PreloadSrc](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_preloadsrc) 方法将媒体资源预加载到播放列表后，可以调用该方法播放已预加载的媒体资源。调用该方法后，如果你收到 [OnPlayerSourceStateChanged](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged) 回调报告状态 `PLAYER_STATE_PLAYING`，则表示播放成功。
如果你想更换播放的预加载媒体资源，你可以再次调用该方法并指定新的媒体资源路径。如果你想重新播放媒体资源，你需要在播放前调用 [PreloadSrc](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_preloadsrc) 重新将该媒体资源预加载到播放列表。如果你想清空播放列表，请调用 [Stop](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-control#api_imediaplayer_stop)。

:::note
注： 如果你在播放暂停时调用该方法，该方法会在恢复播放后才生效。
:::

<a id="api_imediaplayer_playpreloadedsrc__parameters"></a>

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

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

播放列表中的媒体资源 URL 地址，必须与 [PreloadSrc](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_preloadsrc) 方法设置的 `src` 一致，否则无法播放。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_playpreloadedsrc__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_resume"></a>

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

## Resume [#resume]

暂停后恢复播放。

<a id="api_imediaplayer_resume__prototype"></a>

```csharp
public abstract int Resume();
```

<a id="api_imediaplayer_resume__detailed_desc"></a>

<a id="api_imediaplayer_resume__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_seek"></a>

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

## Seek [#seek]

定位到媒体文件的指定播放位置。

<a id="api_imediaplayer_seek__prototype"></a>

```csharp
public abstract int Seek(Int64 newPos);
```

<a id="api_imediaplayer_seek__detailed_desc"></a>

- 如果你在播放已经完成后（收到 [OnPlayerSourceStateChanged](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged) 回调报告播放状态为 PLAYER_STATE_PLAYBACK_COMPLETED 或 PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED）再调用 [Seek](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-control#api_imediaplayer_seek)，方法调用成功后，SDK 会从你指定的位置开始自动播放，此时你会收到 [OnPlayerSourceStateChanged](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged) 回调报告播放状态为 PLAYER_STATE_PLAYING。
- 如果你在播放暂停的情况下调用 [Seek](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-control#api_imediaplayer_seek)，调用成功后 SDK 会定位到你指定位置，如需播放，请调用 [Resume](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-control#api_imediaplayer_resume) 或 [Play](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-control#api_imediaplayer_play)。

<a id="api_imediaplayer_seek__timing"></a>

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

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

<a id="api_imediaplayer_seek__related"></a>

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

成功调用该方法后，你会收到 [OnPlayerEvent](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayerevent) 回调，报告当前播放器发生的事件，如定位开始、定位成功或定位失败。

<a id="api_imediaplayer_seek__parameters"></a>

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

<ParameterList>
<a id="newpos"></a>
<Parameter name="newPos">

指定的位置（毫秒）。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_seek__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="api_imediaplayer_stop"></a>

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

## Stop [#stop]

停止播放。

<a id="api_imediaplayer_stop__prototype"></a>

```csharp
public abstract int Stop();
```

<a id="api_imediaplayer_stop__detailed_desc"></a>

调用该方法停止播放后，如需重新播放，需要调用 [Open](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_open) 或 [OpenWithMediaSource](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_openwithmediasource) 再次打开媒体资源。

<a id="api_imediaplayer_stop__timing"></a>

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

该方法需要在 Play 之后调用。

<a id="api_imediaplayer_stop__return_values"></a>

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

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

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

- [IMediaPlayer](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayer)

<a id="callback_imediaplayercustomdataprovider_onseek"></a>

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

## OnSeek [#onseek]

定位媒体资源数据回调。

<a id="callback_imediaplayercustomdataprovider_onseek__prototype"></a>

```csharp
public virtual Int64 OnSeek(Int64 offset, int whence)
        {
            return 0;
        }
```

<a id="callback_imediaplayercustomdataprovider_onseek__detailed_desc"></a>

使用 [OpenWithMediaSource](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_openwithmediasource) 或 [Open](/zh-CN/api-reference/rtc/unity/play/mediaplayer/mediaplayer-open#api_imediaplayer_open) 打开媒体资源时，SDK 会触发该回调，向你请求定位到媒体资源中的指定位置。

<a id="callback_imediaplayercustomdataprovider_onseek__parameters"></a>

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

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

输入参数。定位位置相对于起点的偏移量，单位为字节。取值可正可负。

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

输入参数。表示定位的起点位置。可以为如下值：

- 0：起点为数据的头，定位后的实际数据偏移量为 `offset`。
- 1：起点为当前位置，定位后的实际数据偏移量为当前位置加上 `offset`。
- 2：起点为数据的尾，定位后的实际数据偏移量为文件长度加上 `offset`。
- 65536：不执行定位操作，返回文件大小。建议在播放 MP3、WAV 等纯音频文件时使用该参数值。

</Parameter>
</ParameterList>

<a id="callback_imediaplayercustomdataprovider_onseek__return_values"></a>

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

- 当 `whence` 为 `65536` 时，返回媒体文件大小。
- 当 `whence` 为 `0`/`1`/`2` 时，返回实际定位后的数据偏移量。
- -1：定位失败。

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

- [IMediaPlayerCustomDataProvider](/zh-CN/api-reference/rtc/unity/rtc-interface-class#class_imediaplayercustomdataprovider)
