# 播放器控制 (/zh-CN/api-reference/rtc/android/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>

```java
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/android/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>

```java
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/android/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>

```java
int mute(boolean 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/android/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>

```java
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/android/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>

```java
int play();
```

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

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

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

- 在调用 `open` 或 [openWithMediaSource](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-open#api_imediaplayer_openwithmediasource) 打开媒体文件并收到 [onPlayerStateChanged](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged) 回调报告状态为 `PLAYER_STATE_OPEN_COMPLETED` 后调用该方法。
- 在调用 [seek](/zh-CN/api-reference/rtc/android/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/android/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>

```java
int playPreloadedSrc(String src);
```

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

调用 [preloadSrc](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-open#api_imediaplayer_preloadsrc) 将媒体资源预加载到播放列表后，可以调用 [playPreloadedSrc](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-control#api_imediaplayer_playpreloadedsrc) 播放该预加载的媒体资源。调用该方法后，如果收到 [onPlayerStateChanged](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged) 回调并报告 `PLAYER_STATE_PLAYING` 状态，则表示播放成功。
如果想更换要播放的预加载媒体资源，可以再次调用 [playPreloadedSrc](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-control#api_imediaplayer_playpreloadedsrc) 并指定新的媒体资源 URL。若想重新播放该媒体资源，需要先调用 [preloadSrc](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-open#api_imediaplayer_preloadsrc) 重新预加载后再播放。若想清空播放列表，请调用 [stop](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_stop_player)。

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

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

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

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

播放列表中媒体资源的 URL，必须与通过 [preloadSrc](/zh-CN/api-reference/rtc/android/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/android/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>

```java
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/android/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>

```java
int seek(long newPos);
```

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

如果在播放完成后调用 [seek](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-control#api_imediaplayer_seek)，即收到回调 [onPlayerStateChanged](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged)，播放状态为 `PLAYER_STATE_PLAYBACK_COMPLETED` 或 `PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED`，SDK 会从指定位置开始播放媒体文件，并触发 [onPlayerStateChanged](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayersourcestatechanged) 回调，播放状态为 `PLAYER_STATE_PLAYING`。
如果在播放暂停时调用 [seek](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-control#api_imediaplayer_seek)，调用成功后，SDK 会跳转到指定位置。要恢复播放，请调用 [resume](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-control#api_imediaplayer_resume) 或 [play](/zh-CN/api-reference/rtc/android/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/android/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/android/rtc-interface-class#class_imediaplayer)

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

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

## stop [1/2] [#stop-12]

停止播放媒体轨道。

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

```java
int stop();
```

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

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

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

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

请在播放后调用此方法。

<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/android/rtc-interface-class#class_imediaplayer)

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

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

## onSeek [#onseek]

当 SDK 定位媒体资源数据时触发的回调。

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

```java
long onSeek(long offset, int whence)
```

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

当你调用 [openWithMediaSource](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-open#api_imediaplayer_openwithmediasource) 或 `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/android/rtc-interface-class#class_imediaplayercustomdataprovider)
