# URL 拉流播放 (/zh-CN/api-reference/rtc/android/play/rte-player)

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

<a id="toc_rte_player"></a>

<a id="api_rteplayerinfo_abrsubscriptionlayer"></a>

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

## abrSubscriptionLayer [#abrsubscriptionlayer]

获取当前订阅的视频层级。

<a id="api_rteplayerinfo_abrsubscriptionlayer__prototype"></a>

```java
public Constants.AbrSubscriptionLayer abrSubscriptionLayer()
```

<a id="api_rteplayerinfo_abrsubscriptionlayer__detailed_desc"></a>

该方法仅在打开 RTE URL 时有效。

<a id="api_rteplayerinfo_abrsubscriptionlayer__return_values"></a>

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

方法调用成功，返回 [AbrSubscriptionLayer](/zh-CN/api-reference/rtc/android/enum-rteabrsubscriptionlayer) 对象。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_canvas_addview"></a>

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

## addView [#addview]

添加一个渲染视图。

<a id="api_canvas_addview__prototype"></a>

```java
public void addView(View view, ViewConfig viewConfig) throws RteException
```

<a id="api_canvas_addview__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

当你需要使用播放器播放视频时，可以调用该方法将视图添加到视频渲染器中，以显示视频内容。

:::note
注： 当前仅支持一个视图。
:::

<a id="api_canvas_addview__scenario"></a>

### 适用场景 [#适用场景]

当你需要使用播放器播放视频时，可以调用此方法将视图添加到视频渲染器中，以显示视频内容。

<a id="api_canvas_addview__timing"></a>

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

必须在调用 [setCanvas](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_setcanvas) 之前调用该方法。

<a id="api_canvas_addview__parameters"></a>

### 参数 [#参数]

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

`SurfaceView` 对象。

</Parameter>
<a id="viewconfig"></a>
<Parameter name="viewConfig">

视图的相关设置。

</Parameter>
</ParameterList>

<a id="api_canvas_addview__exception"></a>

### 异常 [#异常]

添加渲染视图失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Canvas](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvas)

<a id="api_rteplayerinfo_audiobitspersample"></a>

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

## audioBitsPerSample [#audiobitspersample]

获取每个音频采样点的位数。

<a id="api_rteplayerinfo_audiobitspersample__prototype"></a>

```java
public int audioBitsPerSample()
```

<a id="api_rteplayerinfo_audiobitspersample__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

:::note
注： [audioBitsPerSample](/zh-CN/api-reference/rtc/android/play/rte-player#api_rteplayerinfo_audiobitspersample) 仅在打开非 RTM URL 时有效。
:::

<a id="api_rteplayerinfo_audiobitspersample__return_values"></a>

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

方法调用成功，返回每个音频采样点的位数，单位为 bit。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_rteplayerinfo_audiochannels"></a>

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

## audioChannels [#audiochannels]

获取音频通道数。

<a id="api_rteplayerinfo_audiochannels__prototype"></a>

```java
public int audioChannels()
```

<a id="api_rteplayerinfo_audiochannels__detailed_desc"></a>

<a id="api_rteplayerinfo_audiochannels__return_values"></a>

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

方法调用成功，返回音频通道数。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_rteplayerinfo_audiosamplerate"></a>

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

## audioSampleRate [#audiosamplerate]

获取音频采样率。

<a id="api_rteplayerinfo_audiosamplerate__prototype"></a>

```java
public int audioSampleRate()
```

<a id="api_rteplayerinfo_audiosamplerate__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_rteplayerinfo_audiosamplerate__return_values"></a>

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

方法调用成功，返回音频采样率，单位为 Hz。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_canvas_canvas_canvas"></a>

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

## Canvas [#canvas]

构造一个 [Canvas](/zh-CN/api-reference/rtc/android/play/rte-player#api_canvas_canvas_canvas) 对象。

<a id="api_canvas_canvas_canvas__prototype"></a>

```java
public Canvas(Rte rte, CanvasInitialConfig config)
```

<a id="api_canvas_canvas_canvas__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_canvas_canvas_canvas__parameters"></a>

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

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

用于构造 [Canvas](/zh-CN/api-reference/rtc/android/play/rte-player#api_canvas_canvas_canvas) 的 [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte) 对象，详见 [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte)。

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

初始化配置对象。你可以传入 `null`。

</Parameter>
</ParameterList>

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

- [Canvas](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvas)

<a id="api_error_code"></a>

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

## code [#code]

获取 API 调用失败时返回的错误码。

<a id="api_error_code__prototype"></a>

```java
public Constants.ErrorCode code()
```

<a id="api_error_code__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_error_code__timing"></a>

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

你可以在 API 调用失败时调用此方法获取错误码。

<a id="api_error_code__return_values"></a>

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

- 方法调用失败时，返回错误码。详见 [ErrorCode](/zh-CN/api-reference/rtc/android/enum-rteerrorcode)。

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

- [Error](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_error)

<a id="api_rteplayerinfo_currenturl"></a>

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

## currentUrl [#currenturl]

获取当前正在播放的 URL。

<a id="api_rteplayerinfo_currenturl__prototype"></a>

```java
public String currentUrl()
```

<a id="api_rteplayerinfo_currenturl__detailed_desc"></a>

<a id="api_rteplayerinfo_currenturl__return_values"></a>

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

方法调用成功时，返回当前正在播放的 URL。
方法调用失败，返回空字符串。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_rte_destroy_rte"></a>

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

## destroy [#destroy]

销毁 `RTE` 对象，释放相关资源。

<a id="api_rte_destroy_rte__prototype"></a>

```java
public synchronized void destroy() throws RteException
```

<a id="api_rte_destroy_rte__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_rte_destroy_rte__exception"></a>

### 异常 [#异常-1]

销毁失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte)

<a id="api_rteplayerinfo_duration"></a>

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

## duration [#duration]

获取当前媒体资源的时长。

<a id="api_rteplayerinfo_duration__prototype"></a>

```java
public long duration()
```

<a id="api_rteplayerinfo_duration__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

:::note
注： 该方法仅在播放本地媒体文件或输入在线媒体流时有效。
:::

<a id="api_rteplayerinfo_duration__return_values"></a>

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

方法调用成功，返回当前媒体资源的时长，单位为毫秒。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_rteexception_errorcode"></a>

<a id="api_rteexception_errorcode_rteexception"></a>

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

## errorCode [#errorcode]

获取 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 中携带的错误码。

<a id="api_rteexception_errorcode_rteexception__prototype"></a>

```java
public Constants.ErrorCode errorCode()
```

<a id="api_rteexception_errorcode_rteexception__detailed_desc"></a>

<a id="api_rteexception_errorcode_rteexception__return_values"></a>

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

方法调用成功，返回 [ErrorCode](/zh-CN/api-reference/rtc/android/enum-rteerrorcode) 对象。

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

- [RteException](/zh-CN/api-reference/rtc/android/class-rteexception)

<a id="api_playerconfig_getabrfallbacklayer"></a>

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

## getAbrFallbackLayer [#getabrfallbacklayer]

获取已配置的视频流回退选项。

<a id="api_playerconfig_getabrfallbacklayer__prototype"></a>

```java
public Constants.AbrFallbackLayer getAbrFallbackLayer() throws RteException
```

<a id="api_playerconfig_getabrfallbacklayer__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_playerconfig_getabrfallbacklayer__timing"></a>

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

你必须在调用 `getConfigs` 之后调用此方法。

<a id="api_playerconfig_getabrfallbacklayer__exception"></a>

### 异常 [#异常-2]

如果方法调用失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

<a id="api_playerconfig_getabrfallbacklayer__return_values"></a>

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

方法调用成功，返回已配置的视频流回退选项。详见 [AbrFallbackLayer](/zh-CN/api-reference/rtc/android/enum-rteabrfallbacklayer)。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_playerconfig_getabrsubscriptionlayer"></a>

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

## getAbrSubscriptionLayer [#getabrsubscriptionlayer]

获取已订阅视频流的质量层级。

<a id="api_playerconfig_getabrsubscriptionlayer__prototype"></a>

```java
public Constants.AbrSubscriptionLayer getAbrSubscriptionLayer() throws RteException
```

<a id="api_playerconfig_getabrsubscriptionlayer__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_playerconfig_getabrsubscriptionlayer__timing"></a>

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

你需要在调用 `getConfigs` 方法之后调用此方法。

<a id="api_playerconfig_getabrsubscriptionlayer__exception"></a>

### 异常 [#异常-3]

如果方法调用失败，SDK 会抛出包含相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常。你需要捕获并处理该异常。

<a id="api_playerconfig_getabrsubscriptionlayer__return_values"></a>

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

方法调用成功，返回当前设置的视频质量层级。详见 [AbrSubscriptionLayer](/zh-CN/api-reference/rtc/android/enum-rteabrsubscriptionlayer)。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_config_getappid"></a>

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

## getAppId [#getappid]

获取已设置的 App ID。

<a id="api_config_getappid__prototype"></a>

```java
public String getAppId() throws RteException
```

<a id="api_config_getappid__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_config_getappid__return_values"></a>

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

方法调用成功时，返回已设置的 App ID。
方法调用失败，返回空字符串。

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

- [Config](/zh-CN/api-reference/rtc/android/class-config)

<a id="api_playerconfig_getautoplay"></a>

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

## getAutoPlay [#getautoplay]

获取媒体播放器的自动播放设置。

<a id="api_playerconfig_getautoplay__prototype"></a>

```java
public boolean getAutoPlay() throws RteException
```

<a id="api_playerconfig_getautoplay__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_playerconfig_getautoplay__timing"></a>

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

此方法必须在调用 `getConfigs` 之后调用。

<a id="api_playerconfig_getautoplay__exception"></a>

### 异常 [#异常-4]

获取自动播放设置失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

<a id="api_playerconfig_getautoplay__return_values"></a>

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

- true：获取成功。
- false：获取失败。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_canvas_getconfigs_canvas"></a>

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

## getConfigs [3/3] [#getconfigs-33]

获取播放器当前的视频渲染配置。

<a id="api_canvas_getconfigs_canvas__prototype"></a>

```java
public void getConfigs(CanvasConfig config) throws RteException
```

<a id="api_canvas_getconfigs_canvas__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_canvas_getconfigs_canvas__timing"></a>

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

你必须在调用 [Canvas](/zh-CN/api-reference/rtc/android/play/rte-player#api_canvas_canvas_canvas) 之后调用此方法。

<a id="api_canvas_getconfigs_canvas__parameters"></a>

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

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

[Canvas](/zh-CN/api-reference/rtc/android/play/rte-player#api_canvas_canvas_canvas) 对象的设置，详见 [CanvasConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvasconfig)。

</Parameter>
</ParameterList>

<a id="api_canvas_getconfigs_canvas__exception"></a>

### 异常 [#异常-5]

如果方法调用失败，SDK 会抛出包含相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception)。你需要捕获并处理该异常。

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

- [Canvas](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvas)

<a id="api_player_getconfigs_player"></a>

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

## getConfigs [2/3] [#getconfigs-23]

获取当前媒体播放器的配置选项。

<a id="api_player_getconfigs_player__prototype"></a>

```java
public void getConfigs(PlayerConfig config) throws RteException
```

<a id="api_player_getconfigs_player__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_player_getconfigs_player__timing"></a>

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

该方法必须在调用 [Player](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_player_player) 之后使用。

<a id="api_player_getconfigs_player__parameters"></a>

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

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

媒体播放器配置对象，详见 [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)。

</Parameter>
</ParameterList>

<a id="api_player_getconfigs_player__exception"></a>

### 异常 [#异常-6]

如果方法调用失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_rte_getconfigs_rte"></a>

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

## getConfigs [1/3] [#getconfigs-13]

获取 [Rte](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_rte_rte) 对象的配置信息。

<a id="api_rte_getconfigs_rte__prototype"></a>

```java
public void getConfigs(Config config) throws RteException
```

<a id="api_rte_getconfigs_rte__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_rte_getconfigs_rte__timing"></a>

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

该方法必须在调用 [Rte](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_rte_rte) 之后使用。

<a id="api_rte_getconfigs_rte__parameters"></a>

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

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

详见 [Config](/zh-CN/api-reference/rtc/android/class-config)。

</Parameter>
</ParameterList>

<a id="api_rte_getconfigs_rte__exception"></a>

### 异常 [#异常-7]

如果方法调用失败，SDK 会抛出 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 并返回相应的错误信息。你需要捕获并处理该异常。

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

- [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte)

<a id="api_rte_getfrombridge"></a>

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

## getFromBridge [#getfrombridge]

从 [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine) 中桥接一个 `RTE` 对象。

<a id="api_rte_getfrombridge__prototype"></a>

```java
public static synchronized Rte getFromBridge() throws RteException
```

<a id="api_rte_getfrombridge__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

通过该方法创建的 `RTE` 对象无需通过 [initMediaEngine](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_initmediaengine) 进行初始化。如果你尚未创建并初始化 `RTC` 引擎，可以先调用 `RTE` 创建一个 `RTE` 对象，再调用 [initMediaEngine](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_initmediaengine) 进行初始化。

<a id="api_rte_getfrombridge__timing"></a>

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

调用此方法前，请确保已调用 [create [2/2]](/zh-CN/api-reference/rtc/android/initialize#api_irtcengine_initialize) 初始化 `RTC` 引擎。

<a id="api_rte_getfrombridge__exception"></a>

### 异常 [#异常-8]

如果方法调用失败，SDK 会抛出 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 并返回相应的错误信息。你需要捕获并处理该异常。

<a id="api_rte_getfrombridge__return_values"></a>

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

方法调用成功，返回 `RTE` 对象。

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

- [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte)

<a id="api_player_getinfo"></a>

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

## getInfo [#getinfo]

检索与播放器和媒体流相关的信息。

<a id="api_player_getinfo__prototype"></a>

```java
public void getInfo(PlayerInfo info) throws RteException
```

<a id="api_player_getinfo__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_player_getinfo__timing"></a>

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

该方法必须在调用 [Player](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_player_player) 之后使用。

<a id="api_player_getinfo__parameters"></a>

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

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

与播放器和媒体流相关的信息，详见 [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)。

</Parameter>
</ParameterList>

<a id="api_player_getinfo__exception"></a>

### 异常 [#异常-9]

如果该方法调用失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_config_getjsonparameter_config"></a>

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

## getJsonParameter [#getjsonparameter]

获取当前设置的 JSON 格式的私有参数集。

<a id="api_config_getjsonparameter_config__prototype"></a>

```java
public String getJsonParameter() throws RteException
```

<a id="api_config_getjsonparameter_config__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_config_getjsonparameter_config__exception"></a>

### 异常 [#异常-10]

调用失败，SDK 会抛出 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常，你需要捕获异常并进行处理。

<a id="api_config_getjsonparameter_config__return_values"></a>

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

方法调用成功时，返回已设置的 JSON 格式的参数集。
方法调用失败，返回空字符串。

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

- [Config](/zh-CN/api-reference/rtc/android/class-config)

<a id="api_playerconfig_getloopcount"></a>

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

## getLoopCount [#getloopcount]

获取媒体文件的循环播放次数。

<a id="api_playerconfig_getloopcount__prototype"></a>

```java
public int getLoopCount() throws RteException
```

<a id="api_playerconfig_getloopcount__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_playerconfig_getloopcount__exception"></a>

### 异常 [#异常-11]

获取失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

<a id="api_playerconfig_getloopcount__return_values"></a>

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

方法调用成功，返回媒体文件的循环播放次数。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_canvasconfig_getmirrormode"></a>

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

## getVideoMirrorMode [#getvideomirrormode]

获取视频镜像模式。

<a id="api_canvasconfig_getmirrormode__prototype"></a>

```java
public Constants.VideoMirrorMode getVideoMirrorMode() throws RteException
```

<a id="api_canvasconfig_getmirrormode__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_canvasconfig_getmirrormode__exception"></a>

### 异常 [#异常-12]

获取视频镜像模式失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

<a id="api_canvasconfig_getmirrormode__return_values"></a>

### 返回值 [#返回值-15]

方法调用成功，返回视频镜像模式，详见 [VideoMirrorMode](/zh-CN/api-reference/rtc/android/enum-rtevideomirrormode)。

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

- [CanvasConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvasconfig)

<a id="api_playerconfig_getplaybackspeed"></a>

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

## getPlaybackSpeed [#getplaybackspeed]

获取播放速度参数。

<a id="api_playerconfig_getplaybackspeed__prototype"></a>

```java
public int getPlaybackSpeed() throws RteException
```

<a id="api_playerconfig_getplaybackspeed__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_playerconfig_getplaybackspeed__exception"></a>

### 异常 [#异常-13]

获取播放速度失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

<a id="api_playerconfig_getplaybackspeed__return_values"></a>

### 返回值 [#返回值-16]

方法调用成功，返回播放速度的值。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_playerconfig_getplayoutvolume"></a>

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

## getPlayoutVolume [#getplayoutvolume]

获取媒体播放器的播放音量。

<a id="api_playerconfig_getplayoutvolume__prototype"></a>

```java
public int getPlayoutVolume() throws RteException
```

<a id="api_playerconfig_getplayoutvolume__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_playerconfig_getplayoutvolume__return_values"></a>

### 返回值 [#返回值-17]

方法调用成功，返回媒体播放器的播放音量级别。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_player_getposition"></a>

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

## getPosition [#getposition]

获取当前的播放位置。

<a id="api_player_getposition__prototype"></a>

```java
public long getPosition() throws RteException
```

<a id="api_player_getposition__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_player_getposition__exception"></a>

### 异常 [#异常-14]

如果方法调用失败，SDK 会抛出一个 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常，并返回相应的错误信息。你需要捕获异常并进行处理。

<a id="api_player_getposition__return_values"></a>

### 返回值 [#返回值-18]

方法调用成功，返回当前的播放位置，单位为毫秒。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_canvasconfig_getrendermode"></a>

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

## getVideoRenderMode [#getvideorendermode]

获取当前设置的视频镜像模式。

<a id="api_canvasconfig_getrendermode__prototype"></a>

```java
public Constants.VideoRenderMode getVideoRenderMode() throws RteException
```

<a id="api_canvasconfig_getrendermode__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_canvasconfig_getrendermode__timing"></a>

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

你需要在调用 `getConfigs` 之后调用此方法。

<a id="api_canvasconfig_getrendermode__exception"></a>

### 异常 [#异常-15]

如果方法调用失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

<a id="api_canvasconfig_getrendermode__return_values"></a>

### 返回值 [#返回值-19]

方法调用成功，返回当前设置的视频镜像模式。详见 [VideoMirrorMode](/zh-CN/api-reference/rtc/android/enum-rtevideomirrormode)。

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

- [CanvasConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvasconfig)

<a id="api_player_getstats"></a>

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

## getStats [#getstats]

获取播放器当前播放媒体资源的统计信息。

<a id="api_player_getstats__prototype"></a>

```java
public void getStats(PlayerGetStatsCallback callback)
```

<a id="api_player_getstats__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

该方法通过回调异步返回播放器的统计信息。

<a id="api_player_getstats__timing"></a>

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

该方法必须在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 之后调用。

<a id="api_player_getstats__parameters"></a>

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

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

用于异步接收统计信息和错误信息的回调接口。详见 [PlayerGetStatsCallback](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playergetstatscallback)。

</Parameter>
</ParameterList>

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_rteplayerinfo_hasaudio"></a>

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

## hasAudio [#hasaudio]

判断媒体资源是否包含音频流。

<a id="api_rteplayerinfo_hasaudio__prototype"></a>

```java
public boolean hasAudio()
```

<a id="api_rteplayerinfo_hasaudio__detailed_desc"></a>

<a id="api_rteplayerinfo_hasaudio__return_values"></a>

### 返回值 [#返回值-20]

- true：媒体资源中包含音频流。
- false：媒体资源中不包含音频流。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_rteplayerinfo_hasvideo"></a>

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

## hasVideo [#hasvideo]

判断是否包含视频流。

<a id="api_rteplayerinfo_hasvideo__prototype"></a>

```java
public boolean hasVideo()
```

<a id="api_rteplayerinfo_hasvideo__detailed_desc"></a>

<a id="api_rteplayerinfo_hasvideo__return_values"></a>

### 返回值 [#返回值-21]

true：URL 源包含视频流。
false：URL 源不包含视频流。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_rte_initmediaengine"></a>

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

## initMediaEngine [#initmediaengine]

初始化 `RTE` 引擎。

<a id="api_rte_initmediaengine__prototype"></a>

```java
public void initMediaEngine(AsyncCallback callBack) throws RteException
```

<a id="api_rte_initmediaengine__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

该方法为异步方法，通过回调函数返回初始化结果。你需要在创建 `RTE` 对象并设置 App ID 后调用该方法。

<a id="api_rte_initmediaengine__parameters"></a>

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

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

异步返回引擎初始化结果的回调。详见 [AsyncCallback](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_asynccallback)。

</Parameter>
</ParameterList>

<a id="api_rte_initmediaengine__exception"></a>

### 异常 [#异常-16]

初始化失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte)

<a id="api_rteplayerinfo_isaudiomuted"></a>

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

## isAudioMuted [#isaudiomuted]

判断播放器是否停止接收远端音频流。

<a id="api_rteplayerinfo_isaudiomuted__prototype"></a>

```java
public boolean isAudioMuted()
```

<a id="api_rteplayerinfo_isaudiomuted__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_rteplayerinfo_isaudiomuted__return_values"></a>

### 返回值 [#返回值-22]

- true：播放器已停止接收远端音频流。
- false：播放器仍在接收远端音频流。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_rteplayerinfo_isvideomuted"></a>

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

## isVideoMuted [#isvideomuted]

判断播放器是否停止接收远端视频流。

<a id="api_rteplayerinfo_isvideomuted__prototype"></a>

```java
public boolean isVideoMuted()
```

<a id="api_rteplayerinfo_isvideomuted__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

:::note
注： [isVideoMuted](/zh-CN/api-reference/rtc/android/play/rte-player#api_rteplayerinfo_isvideomuted) 接口仅在打开 RTE URL 时有效。
:::

<a id="api_rteplayerinfo_isvideomuted__return_values"></a>

### 返回值 [#返回值-23]

- true：播放器已停止接收远端视频流。
- false：播放器仍在接收远端视频流。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_error_message"></a>

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

## message [#message]

获取详细的错误信息。

<a id="api_error_message__prototype"></a>

```java
public String message()
```

<a id="api_error_message__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_error_message__timing"></a>

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

当 API 调用失败时，可以调用该方法获取错误信息，以帮助排查问题。

<a id="api_error_message__return_values"></a>

### 返回值 [#返回值-24]

- 方法调用成功时，返回错误信息字符串。
- 方法调用失败，返回空字符串。

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

- [Error](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_error)

<a id="api_player_muteaudio"></a>

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

## muteAudio [#muteaudio]

开始或停止接收音频流。

<a id="api_player_muteaudio__prototype"></a>

```java
public void muteAudio(boolean mute) throws RteException
```

<a id="api_player_muteaudio__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_player_muteaudio__timing"></a>

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

该方法需要在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 方法之后调用。

<a id="api_player_muteaudio__related"></a>

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

调用该方法成功后，会触发 [onPlayerInfoUpdated](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayerinfoupdated) 回调，上报最新的播放器和媒体拉流信息。

<a id="api_player_muteaudio__parameters"></a>

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

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

是否接收音频流：

- true：不接收音频流。
- false：接收音频流。

</Parameter>
</ParameterList>

<a id="api_player_muteaudio__exception"></a>

### 异常 [#异常-17]

方法调用失败时，SDK 会抛出包含错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常。你需要捕获并处理该异常。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_player_mutevideo"></a>

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

## muteVideo [#mutevideo]

开始或停止接收远端视频流。

<a id="api_player_mutevideo__prototype"></a>

```java
public void muteVideo(boolean mute) throws RteException
```

<a id="api_player_mutevideo__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_player_mutevideo__timing"></a>

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

你必须在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 之后调用该方法。

<a id="api_player_mutevideo__related"></a>

### 相关回调 [#相关回调-1]

该方法调用成功后，会触发 [onPlayerInfoUpdated](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-observer#callback_imediaplayersourceobserver_onplayerinfoupdated) 回调，用于上报最新的播放器和媒体流信息。

<a id="api_player_mutevideo__parameters"></a>

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

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

是否接收远端视频流：

- true：不接收远端视频流。
- false：接收远端视频流。

</Parameter>
</ParameterList>

<a id="api_player_mutevideo__exception"></a>

### 异常 [#异常-18]

如果方法调用失败，SDK 会抛出带有相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常。你需要捕获并处理该异常。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_player_openwithurl"></a>

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

## openWithUrl [#openwithurl]

打开一个 URL 资源。

<a id="api_player_openwithurl__prototype"></a>

```java
public void openWithUrl(String url, long startTime, AsyncCallback callback)
```

<a id="api_player_openwithurl__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

该方法支持通过 URL 打开实时流媒体资源。如果你希望加快打开速度，可以在调用该方法前使用 [preloadWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_preloadwithurl) 预加载资源。
如果资源打开失败，你会收到 [onStateChanged](/zh-CN/api-reference/rtc/android/play/rte-player#callback_playerobserver_onstatechanged) 回调，播放器状态为 `FAILED`。此时需要先调用 [stop](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_stop_player)，然后再次调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 重新打开资源。
如果你关闭了自动播放功能，可以在资源打开后调用 [play](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_play_player) 开始播放。

:::note
注： 该方法目前仅支持以 `rte://` 开头的 URL、CDN 推流 URL 和本地媒体文件。
:::

<a id="api_player_openwithurl__timing"></a>

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

该方法必须在 [Player](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_player_player) 之后调用。

<a id="api_player_openwithurl__related"></a>

### 相关回调 [#相关回调-2]

调用该方法后会触发 [onStateChanged](/zh-CN/api-reference/rtc/android/play/rte-player#callback_playerobserver_onstatechanged) 回调，播放器状态为 `OPENING`，表示正在打开 URL。成功打开后，播放器状态为 `OPEN_COMPLETED`。

<a id="api_player_openwithurl__parameters"></a>

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

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

要打开的 URL，可以是 CDN 推流 URL、本地媒体文件，或以 `rte://` 为前缀的 URL。

</Parameter>
<a id="starttime"></a>
<Parameter name="startTime">

播放的起始位置，单位为毫秒。

</Parameter>
<a id="callback-2"></a>
<Parameter name="callback">

异步通知打开 URL 资源结果的回调。你可以通过该回调的 [onResult](/zh-CN/api-reference/rtc/android/play/rte-player#callback_asynccallback_onresult_asynccallback) 方法获取错误信息。

</Parameter>
</ParameterList>

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_player_pause_player"></a>

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

## pause [#pause]

暂停播放。

<a id="api_player_pause_player__prototype"></a>

```java
public void pause() throws RteException
```

<a id="api_player_pause_player__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

调用 [play](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_play_player) 播放 URL 资源后，如需暂停播放，可以调用该方法。如需停止播放，请调用 [stop](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_stop_player)。

<a id="api_player_pause_player__timing"></a>

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

该方法必须在调用 [play](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_play_player) 之后调用。

<a id="api_player_pause_player__related"></a>

### 相关回调 [#相关回调-3]

成功调用该方法后，会触发 [onStateChanged](/zh-CN/api-reference/rtc/android/play/rte-player#callback_playerobserver_onstatechanged) 回调，报告播放器状态为 `PAUSED`。

<a id="api_player_pause_player__exception"></a>

### 异常 [#异常-19]

如果该方法调用失败，SDK 会抛出带有相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常。你需要捕获并处理该异常。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_player_play_player"></a>

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

## play [#play]

播放一个 URL 资源。

<a id="api_player_play_player__prototype"></a>

```java
public void play() throws RteException
```

<a id="api_player_play_player__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

如果你已关闭自动播放，在使用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 成功打开一个在线媒体流后，可以调用该方法开始播放。

:::note
注： 该方法当前仅支持以 `rte://` 为前缀的 URL。
:::

<a id="api_player_play_player__timing"></a>

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

仅在收到状态为 `OPEN_COMPLETED` 的 [onStateChanged](/zh-CN/api-reference/rtc/android/play/rte-player#callback_playerobserver_onstatechanged) 回调后调用该方法。

<a id="api_player_play_player__related"></a>

### 相关回调 [#相关回调-4]

调用该方法成功后，会触发 [onStateChanged](/zh-CN/api-reference/rtc/android/play/rte-player#callback_playerobserver_onstatechanged) 回调以上报播放器状态。

<a id="api_player_play_player__exception"></a>

### 异常 [#异常-20]

如果方法调用失败，SDK 会抛出包含相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常。你需要捕获并处理该异常。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_player_player_player"></a>

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

## Player [#player]

构造一个 [Player](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_player_player) 播放器对象。

<a id="api_player_player_player__prototype"></a>

```java
public Player(Rte rte, PlayerInitialConfig initialConfig)
```

<a id="api_player_player_player__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_player_player_player__timing"></a>

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

该方法必须在调用 [initMediaEngine](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_initmediaengine) 之后调用。

<a id="api_player_player_player__parameters"></a>

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

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

一个 [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte) 对象。详见 [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte)。

</Parameter>
<a id="initialconfig"></a>
<Parameter name="initialConfig">

播放器对象的初始化设置。你可以传入 `null`。

</Parameter>
</ParameterList>

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_player_preloadwithurl"></a>

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

## preloadWithUrl [#preloadwithurl]

预加载 URL 资源。

<a id="api_player_preloadwithurl__prototype"></a>

```java
public static void preloadWithUrl(String url) throws RteException
```

<a id="api_player_preloadwithurl__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

成功预加载资源可以加快使用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 打开 URL 资源的速度，从而减少等待时间。

:::note
注： 该方法目前仅适用于以 `rte://` 为前缀的 URL。最多可预加载 20 个 URL，若超过限制，新预加载的 URL 会替换最早的 URL。
:::

<a id="api_player_preloadwithurl__scenario"></a>

### 适用场景 [#适用场景-1]

在打开媒体资源前预加载，可以减少用户等待时间，提供更流畅的视听体验。

<a id="api_player_preloadwithurl__timing"></a>

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

必须在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 之前调用该方法。

<a id="api_player_preloadwithurl__parameters"></a>

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

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

以 `rte://` 为前缀的 URL。各字段的详细信息参见观众端的“输入在线媒体流”。

</Parameter>
</ParameterList>

<a id="api_player_preloadwithurl__exception"></a>

### 异常 [#异常-21]

如果方法调用失败，SDK 会抛出包含相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception)。你需要捕获并处理该异常。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_player_registerobserver_player"></a>

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

## registerObserver [#registerobserver]

注册播放器的观察者对象。

<a id="api_player_registerobserver_player__prototype"></a>

```java
public void registerObserver(PlayerObserver observer) throws RteException
```

<a id="api_player_registerobserver_player__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

在调用此方法之前，你需要实现一个继承自 [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver) 的接口类。

<a id="api_player_registerobserver_player__timing"></a>

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

该方法必须在调用 [Player](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_player_player) 之后执行。

<a id="api_player_registerobserver_player__parameters"></a>

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

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

详见 [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)。

</Parameter>
</ParameterList>

<a id="api_player_registerobserver_player__exception"></a>

### 异常 [#异常-22]

如果方法调用失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_canvas_removeview"></a>

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

## removeView [#removeview]

移除一个渲染视图。

<a id="api_canvas_removeview__prototype"></a>

```java
public void removeView(View view, ViewConfig viewConfig) throws RteException
```

<a id="api_canvas_removeview__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

:::note
注： 每次只能移除一个视图。
:::

<a id="api_canvas_removeview__timing"></a>

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

该方法必须在调用 [addView](/zh-CN/api-reference/rtc/android/play/rte-player#api_canvas_addview) 之后调用。

<a id="api_canvas_removeview__parameters"></a>

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

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

要移除的视图对象。

</Parameter>
<a id="viewconfig-1"></a>
<Parameter name="viewConfig">

`view` 对象的设置。

</Parameter>
</ParameterList>

<a id="api_canvas_removeview__return_values"></a>

### 返回值 [#返回值-25]

调用失败时，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Canvas](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvas)

<a id="api_rte_rte_rte"></a>

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

## Rte [#rte]

构造一个 [Rte](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_rte_rte) 对象。

<a id="api_rte_rte_rte__prototype"></a>

```java
public Rte(InitialConfig initialConfig)
```

<a id="api_rte_rte_rte__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_rte_rte_rte__timing"></a>

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

你必须在调用 [initMediaEngine](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_initmediaengine) 之前调用此方法。

<a id="api_rte_rte_rte__parameters"></a>

### 参数 [#参数-15]

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

初始化设置。你可以传入 `null`。

</Parameter>
</ParameterList>

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

- [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte)

<a id="api_player_seek"></a>

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

## seek [#seek]

跳转到指定的播放位置。

<a id="api_player_seek__prototype"></a>

```java
public void seek(long newTime) throws RteException
```

<a id="api_player_seek__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_player_seek__parameters"></a>

### 参数 [#参数-16]

<ParameterList>
<a id="newtime"></a>
<Parameter name="newTime">

要跳转到的播放位置，单位为毫秒。

</Parameter>
</ParameterList>

<a id="api_player_seek__exception"></a>

### 异常 [#异常-23]

如果方法调用失败，SDK 会抛出一个 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_playerconfig_setabrfallbacklayer"></a>

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

## setAbrFallbackLayer [#setabrfallbacklayer]

设置已订阅远端视频流的回退选项。

<a id="api_playerconfig_setabrfallbacklayer__prototype"></a>

```java
public void setAbrFallbackLayer(Constants.AbrFallbackLayer fallbackLayer) throws RteException
```

<a id="api_playerconfig_setabrfallbacklayer__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

在网络状况不佳时，SDK 会将已订阅远端视频流的分辨率降级到指定的视频质量层。每个质量层对应特定的分辨率和码率。网络恢复后，SDK 会将视频流恢复至原始质量层。

:::note
注： 如果未开启 ABR 功能，视频流的回退质量层只能设置为 `LOW` 或 `AUDIO_ONLY`。
:::

<a id="api_playerconfig_setabrfallbacklayer__scenario"></a>

### 适用场景 [#适用场景-2]

一般场景下，可调用该方法并将回退质量层设置为 `kRteAbrFallbackLow` 或 `kRteAbrFallbackAudioOnly`。当网络较差时，SDK 会回退为视频小流或仅接收音频流。
如果对回退视频流的分辨率有更高要求，可[联系技术支持](https://ticket.shengwang.cn/)开启 ABR 功能。开启后，可自定义每一层的分辨率。SDK 会以你指定的最低质量层的分辨率为下限，并根据网络状况在该范围内动态调整分辨率。

<a id="api_playerconfig_setabrfallbacklayer__timing"></a>

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

必须在调用 `setConfigs` 之前调用该方法。

<a id="api_playerconfig_setabrfallbacklayer__parameters"></a>

### 参数 [#参数-17]

<ParameterList>
<a id="fallbacklayer"></a>
<Parameter name="fallbackLayer">

视频流的回退质量层，详见 [AbrFallbackLayer](/zh-CN/api-reference/rtc/android/enum-rteabrfallbacklayer)。

:::note
注： 自定义分辨率时，请确保视频质量层按从高到低的分辨率排序；若分辨率相同，则按帧率从高到低排序。

| 视频质量层 | 分辨率 |
| --- | --- |
| `LAYER1` | 2160p (4K) |
| `LAYER2` | 1440p (2K) |
| `LAYER3` | 1080p (HD) |
| `LAYER4` | 720p (HD) |
| `LAYER5` | 540p (SD) |
| `LAYER6` | 480p (SD) |

:::

</Parameter>
</ParameterList>

<a id="api_playerconfig_setabrfallbacklayer__exception"></a>

### 异常 [#异常-24]

调用失败时，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_playerconfig_setabrsubscriptionlayer"></a>

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

## setAbrSubscriptionLayer [#setabrsubscriptionlayer]

设置订阅媒体流的视频质量等级。

<a id="api_playerconfig_setabrsubscriptionlayer__prototype"></a>

```java
public void setAbrSubscriptionLayer(Constants.AbrSubscriptionLayer subscriptionLayer) throws RteException
```

<a id="api_playerconfig_setabrsubscriptionlayer__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

你可以根据实际网络状况，在所订阅的视频流中切换不同的视频质量等级。如果你需要更高级的视频分辨率切换控制，可以[联系技术支持](https://ticket.shengwang.cn/)开启 ABR（自适应码率）功能。开启后，你可以为每个视频质量等级自定义分辨率，使观众可以根据需要在多质量层级视频流的所有等级之间切换。

:::note
注： 如果未开启 ABR 功能，你只能订阅 `HIGH` 或 `LOW` 视频质量等级。
:::

<a id="api_playerconfig_setabrsubscriptionlayer__scenario"></a>

### 适用场景 [#适用场景-3]

在网络环境不稳定的场景中，订阅端可根据实际网络状况选择合适的视频质量层级，以保障流畅的观看体验。

<a id="api_playerconfig_setabrsubscriptionlayer__timing"></a>

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

该方法必须在调用 `setConfigs` 之前调用。

<a id="api_playerconfig_setabrsubscriptionlayer__parameters"></a>

### 参数 [#参数-18]

<ParameterList>
<a id="subscriptionlayer"></a>
<Parameter name="subscriptionLayer">

要订阅的视频质量等级，详见 [AbrSubscriptionLayer](/zh-CN/api-reference/rtc/android/enum-rteabrsubscriptionlayer)。在自定义 `LAYER1` 到 `LAYER6` 的分辨率时，你可以参考下表，或根据实际需求进行配置：
注意：自定义分辨率时，必须按分辨率从高到低排序各视频质量等级（Layer），若分辨率相同，则按帧率从高到低排序。

| 视频质量等级 | 分辨率 |
| --- | --- |
| `LAYER1` | 2160p (4K) |
| `LAYER2` | 1440p (2K) |
| `LAYER3` | 1080p (HD) |
| `LAYER4` | 720p (HD) |
| `LAYER5` | 540p (SD) |
| `LAYER6` | 480p (SD) |

</Parameter>
</ParameterList>

<a id="api_playerconfig_setabrsubscriptionlayer__exception"></a>

### 异常 [#异常-25]

如果方法调用失败，SDK 会抛出包含相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 异常。你需要捕获并处理该异常。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_config_setappid"></a>

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

## setAppId [#setappid]

设置项目的声网 App ID。

<a id="api_config_setappid__prototype"></a>

```java
public void setAppId(String appId) throws RteException
```

<a id="api_config_setappid__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_config_setappid__timing"></a>

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

你必须在调用 [initMediaEngine](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_initmediaengine) 之前调用此方法。

<a id="api_config_setappid__parameters"></a>

### 参数 [#参数-19]

<ParameterList>
<a id="appid"></a>
<Parameter name="appId">

声网 App ID，可从控制台获取。

</Parameter>
</ParameterList>

<a id="api_config_setappid__exception"></a>

### 异常 [#异常-26]

调用失败时，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Config](/zh-CN/api-reference/rtc/android/class-config)

<a id="api_playerconfig_setautoplay"></a>

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

## setAutoPlay [#setautoplay]

设置是否启用自动播放。

<a id="api_playerconfig_setautoplay__prototype"></a>

```java
public void setAutoPlay(boolean autoPlay) throws RteException
```

<a id="api_playerconfig_setautoplay__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

你可以在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 之前调用此方法设置是否启用自动播放。如果未设置，默认启用自动播放。

<a id="api_playerconfig_setautoplay__timing"></a>

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

此方法必须在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 之前调用。

<a id="api_playerconfig_setautoplay__parameters"></a>

### 参数 [#参数-20]

<ParameterList>
<a id="autoplay"></a>
<Parameter name="autoPlay">

是否启用自动播放：

- true：（默认）启用自动播放。
- false：关闭自动播放。

</Parameter>
</ParameterList>

<a id="api_playerconfig_setautoplay__exception"></a>

### 异常 [#异常-27]

设置失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_player_setcanvas"></a>

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

## setCanvas [#setcanvas]

设置用于显示视频的视图窗口。

<a id="api_player_setcanvas__prototype"></a>

```java
public void setCanvas(Canvas canvas) throws RteException
```

<a id="api_player_setcanvas__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

该方法用于设置用于显示视频的 [Canvas](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvas) 对象。

<a id="api_player_setcanvas__timing"></a>

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

该方法必须在调用 [Player](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_player_player) 之后调用。

<a id="api_player_setcanvas__parameters"></a>

### 参数 [#参数-21]

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

用于渲染视频帧的对象，详见 [Canvas](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvas)。

</Parameter>
</ParameterList>

<a id="api_player_setcanvas__exception"></a>

### 异常 [#异常-28]

如果方法调用失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_canvas_setconfigs_canvas"></a>

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

## setConfigs [3/3] [#setconfigs-33]

设置播放器的视频渲染配置。

<a id="api_canvas_setconfigs_canvas__prototype"></a>

```java
public void setConfigs(CanvasConfig config) throws RteException
```

<a id="api_canvas_setconfigs_canvas__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_canvas_setconfigs_canvas__timing"></a>

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

该方法需要在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 之前调用。

<a id="api_canvas_setconfigs_canvas__parameters"></a>

### 参数 [#参数-22]

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

用于设置 [Canvas](/zh-CN/api-reference/rtc/android/play/rte-player#api_canvas_canvas_canvas) 对象的配置，详见 [CanvasConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvasconfig)。

</Parameter>
</ParameterList>

<a id="api_canvas_setconfigs_canvas__exception"></a>

### 异常 [#异常-29]

调用失败时，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Canvas](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvas)

<a id="api_player_setconfigs_player"></a>

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

## setConfigs [2/3] [#setconfigs-23]

设置播放器配置。

<a id="api_player_setconfigs_player__prototype"></a>

```java
public void setConfigs(PlayerConfig config) throws RteException
```

<a id="api_player_setconfigs_player__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

你可以调用此方法配置播放器，例如启用自动播放、订阅不同分辨率和码率的视频流。

<a id="api_player_setconfigs_player__timing"></a>

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

此方法必须在调用 [Player](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_player_player) 之后调用。

<a id="api_player_setconfigs_player__parameters"></a>

### 参数 [#参数-23]

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

播放器配置对象，详见 [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)。

</Parameter>
</ParameterList>

<a id="api_player_setconfigs_player__exception"></a>

### 异常 [#异常-30]

如果方法调用失败，SDK 会抛出包含相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception)。你需要捕获并处理该异常。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_rte_setconfigs_rte"></a>

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

## setConfigs [1/3] [#setconfigs-13]

配置 `RTE` 对象的信息。

<a id="api_rte_setconfigs_rte__prototype"></a>

```java
public void setConfigs(Config config) throws RteException
```

<a id="api_rte_setconfigs_rte__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_rte_setconfigs_rte__timing"></a>

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

该方法必须在调用 [Rte](/zh-CN/api-reference/rtc/android/play/rte-player#api_rte_rte_rte) 之后调用。

<a id="api_rte_setconfigs_rte__parameters"></a>

### 参数 [#参数-24]

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

用于设置 `RTE` 对象的配置信息，详见 [Config](/zh-CN/api-reference/rtc/android/class-config)。

</Parameter>
</ParameterList>

<a id="api_rte_setconfigs_rte__exception"></a>

### 异常 [#异常-31]

如果方法调用失败，SDK 会抛出 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception) 并返回相应的错误信息。你需要捕获并处理该异常。

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

- [Rte](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rte)

<a id="api_config_setjsonparameter_config"></a>

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

## setJsonParameter [#setjsonparameter]

通过 JSON 配置 SDK 的技术预览或定制化功能。

<a id="api_config_setjsonparameter_config__prototype"></a>

```java
public void setJsonParameter(String jsonParameter) throws RteException
```

<a id="api_config_setjsonparameter_config__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_config_setjsonparameter_config__scenario"></a>

### 适用场景 [#适用场景-4]

当你需要设置私有参数或使用定制化功能时，可以调用此方法。

<a id="api_config_setjsonparameter_config__timing"></a>

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

此方法必须在调用 `setConfigs` 之前调用。

<a id="api_config_setjsonparameter_config__parameters"></a>

### 参数 [#参数-25]

<ParameterList>
<a id="jsonparameter"></a>
<Parameter name="jsonParameter">

JSON 字符串格式的参数。

</Parameter>
</ParameterList>

<a id="api_config_setjsonparameter_config__exception"></a>

### 异常 [#异常-32]

如果方法调用失败，SDK 会抛出包含相应错误信息的 [RteException](/zh-CN/api-reference/rtc/android/class-rteexception)。你需要捕获并处理该异常。

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

- [Config](/zh-CN/api-reference/rtc/android/class-config)

<a id="api_playerconfig_setloopcount"></a>

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

## setLoopCount [#setloopcount]

设置媒体文件在播放期间循环播放的次数。

<a id="api_playerconfig_setloopcount__prototype"></a>

```java
public void setLoopCount(int count) throws RteException
```

<a id="api_playerconfig_setloopcount__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_playerconfig_setloopcount__parameters"></a>

### 参数 [#参数-26]

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

媒体文件循环播放的次数：

- `1`：播放一次。
- `2`：播放两次。
- `-1`：无限循环播放，直到调用 [stop](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_stop_player) 停止播放。

</Parameter>
</ParameterList>

<a id="api_playerconfig_setloopcount__exception"></a>

### 异常 [#异常-33]

设置失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_canvasconfig_setmirrormode"></a>

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

## setVideoMirrorMode [#setvideomirrormode]

设置视频镜像模式。

<a id="api_canvasconfig_setmirrormode__prototype"></a>

```java
public void setVideoMirrorMode(Constants.VideoMirrorMode mode) throws RteException
```

<a id="api_canvasconfig_setmirrormode__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

你必须在调用 `setConfigs` 方法之前调用此方法。

<a id="api_canvasconfig_setmirrormode__timing"></a>

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

你必须在调用 `setConfigs` 之前调用此方法。

<a id="api_canvasconfig_setmirrormode__parameters"></a>

### 参数 [#参数-27]

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

镜像模式，详见 [VideoMirrorMode](/zh-CN/api-reference/rtc/android/enum-rtevideomirrormode)。默认值为 `AUTO`，由 SDK 自动决定镜像模式。

</Parameter>
</ParameterList>

<a id="api_canvasconfig_setmirrormode__exception"></a>

### 异常 [#异常-34]

方法调用失败时，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [CanvasConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvasconfig)

<a id="api_playerconfig_setplaybackspeed"></a>

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

## setPlaybackSpeed [#setplaybackspeed]

设置播放速度参数。

<a id="api_playerconfig_setplaybackspeed__prototype"></a>

```java
public void setPlaybackSpeed(int speed) throws RteException
```

<a id="api_playerconfig_setplaybackspeed__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

你可以在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 后调用该方法。

<a id="api_playerconfig_setplaybackspeed__parameters"></a>

### 参数 [#参数-28]

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

播放速度。有效范围为 [50, 400]。

</Parameter>
</ParameterList>

<a id="api_playerconfig_setplaybackspeed__exception"></a>

### 异常 [#异常-35]

设置播放速度失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_playerconfig_setplayoutvolume"></a>

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

## setPlayoutVolume [#setplayoutvolume]

设置播放音量参数。

<a id="api_playerconfig_setplayoutvolume__prototype"></a>

```java
public void setPlayoutVolume(int volume) throws RteException
```

<a id="api_playerconfig_setplayoutvolume__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_playerconfig_setplayoutvolume__parameters"></a>

### 参数 [#参数-29]

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

播放器的音量值。有效范围为 [0, 400]。

</Parameter>
</ParameterList>

<a id="api_playerconfig_setplayoutvolume__exception"></a>

### 异常 [#异常-36]

设置播放音量失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [PlayerConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerconfig)

<a id="api_canvasconfig_setrendermode_canvasconfig"></a>

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

## setVideoRenderMode [#setvideorendermode]

设置视频渲染模式。

<a id="api_canvasconfig_setrendermode_canvasconfig__prototype"></a>

```java
public void setVideoRenderMode(Constants.VideoRenderMode mode) throws RteException
```

<a id="api_canvasconfig_setrendermode_canvasconfig__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="api_canvasconfig_setrendermode_canvasconfig__parameters"></a>

### 参数 [#参数-30]

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

要设置的视频渲染模式，详见 [VideoRenderMode](/zh-CN/api-reference/rtc/android/enum-rtevideorendermode)。

:::note
注： 默认值为 `VideoRenderMode.HIDDEN`。
:::

</Parameter>
</ParameterList>

<a id="api_canvasconfig_setrendermode_canvasconfig__exception"></a>

### 异常 [#异常-37]

[RteException](/zh-CN/api-reference/rtc/android/class-rteexception)：`RteException.errorCode()` 可能返回以下错误码：

- `ErrorCode.INVALID_ARGUMENT`：`mode` 参数设置为非法值。

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

- [CanvasConfig](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_canvasconfig)

<a id="api_rteplayerinfo_state"></a>

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

## state [#state]

获取当前播放器状态。

<a id="api_rteplayerinfo_state__prototype"></a>

```java
public int state()
```

<a id="api_rteplayerinfo_state__detailed_desc"></a>

<a id="api_rteplayerinfo_state__return_values"></a>

### 返回值 [#返回值-26]

方法调用成功，返回当前播放器的状态。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_player_stop_player"></a>

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

## stop [#stop]

停止播放媒体资源。

<a id="api_player_stop_player__prototype"></a>

```java
public void stop() throws RteException
```

<a id="api_player_stop_player__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

如果使用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 打开 URL 流失败，你需要先调用该方法，然后再调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 重新打开 URL。

<a id="api_player_stop_player__timing"></a>

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

该方法必须在调用 [openWithUrl](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_openwithurl) 之后调用。

<a id="api_player_stop_player__related"></a>

### 相关回调 [#相关回调-5]

调用成功后，该方法会触发 [onStateChanged](/zh-CN/api-reference/rtc/android/play/rte-player#callback_playerobserver_onstatechanged) 回调，并上报播放器状态为 `STOPPED`。

<a id="api_player_stop_player__exception"></a>

### 异常 [#异常-38]

如果方法调用失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_rteplayerinfo_streamcount"></a>

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

## streamCount [#streamcount]

获取当前播放源中的流的数量。

<a id="api_rteplayerinfo_streamcount__prototype"></a>

```java
public int streamCount()
```

<a id="api_rteplayerinfo_streamcount__detailed_desc"></a>

该方法仅在打开非 RTE URL 时有效。

<a id="api_rteplayerinfo_streamcount__return_values"></a>

### 返回值 [#返回值-27]

方法调用成功，返回流的数量。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_player_switchwithurl"></a>

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

## switchWithUrl [#switchwithurl]

在播放过程中切换到新的 URL。

<a id="api_player_switchwithurl__prototype"></a>

```java
public void switchWithUrl(String url, boolean syncPts, AsyncCallback callback)
```

<a id="api_player_switchwithurl__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

当 SDK 返回播放器状态为 `OPEN_COMPLETED` 时，必须调用该方法。

:::note
注： 该方法仅在播放器打开非 RTE URL 时有效。
:::

<a id="api_player_switchwithurl__parameters"></a>

### 参数 [#参数-31]

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

要切换的 URL 资源。

</Parameter>
<a id="syncpts"></a>
<Parameter name="syncPts">

- true：同步播放位置。
- false：（默认）不同步播放位置。

</Parameter>
<a id="callback-3"></a>
<Parameter name="callback">

异步通知切换操作结果的回调。你可以通过该回调的 `err` 参数得知操作的结果或错误码信息，详见 [AsyncCallback](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_asynccallback)。

</Parameter>
</ParameterList>

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_player_unregisterobserver_player"></a>

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

## unregisterObserver [#unregisterobserver]

取消注册媒体播放器事件观察者对象。

<a id="api_player_unregisterobserver_player__prototype"></a>

```java
public void unregisterObserver(PlayerObserver observer) throws RteException
```

<a id="api_player_unregisterobserver_player__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

调用 [registerObserver](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_registerobserver_player) 注册媒体播放器事件观察者对象后，如需取消注册，请调用该方法。

<a id="api_player_unregisterobserver_player__timing"></a>

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

该方法必须在调用 [registerObserver](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_registerobserver_player) 之后调用。

<a id="api_player_unregisterobserver_player__parameters"></a>

### 参数 [#参数-32]

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

详见 [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)。

</Parameter>
</ParameterList>

<a id="api_player_unregisterobserver_player__exception"></a>

### 异常 [#异常-39]

如果方法调用失败，SDK 会抛出异常，并返回相应的错误信息。你需要捕获异常并进行处理。

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

- [Player](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_player)

<a id="api_rteplayerinfo_videoheight"></a>

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

## videoHeight [#videoheight]

获取视频分辨率的高度。

<a id="api_rteplayerinfo_videoheight__prototype"></a>

```java
public int videoHeight()
```

<a id="api_rteplayerinfo_videoheight__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_rteplayerinfo_videoheight__return_values"></a>

### 返回值 [#返回值-28]

方法调用成功，返回视频分辨率的高度，单位为像素。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="api_rteplayerinfo_videowidth"></a>

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

## videoWidth [#videowidth]

获取视频分辨率的宽度。

<a id="api_rteplayerinfo_videowidth__prototype"></a>

```java
public int videoWidth()
```

<a id="api_rteplayerinfo_videowidth__detailed_desc"></a>

:::info[自从]
自 v4.5.1 版本新增。
:::

<a id="api_rteplayerinfo_videowidth__return_values"></a>

### 返回值 [#返回值-29]

方法调用成功，返回视频分辨率的宽度，单位为像素。

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

- [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)

<a id="callback_playerobserver_onaudiovolumeindication_playerobserver"></a>

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

## onAudioVolumeIndication [#onaudiovolumeindication]

播放器音量变化回调。

<a id="callback_playerobserver_onaudiovolumeindication_playerobserver__prototype"></a>

```java
public void onAudioVolumeIndication(int volume)
```

<a id="callback_playerobserver_onaudiovolumeindication_playerobserver__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="callback_playerobserver_onaudiovolumeindication_playerobserver__timing"></a>

### 触发时机 [#触发时机]

该回调在播放器音量发生变化时被触发。

<a id="callback_playerobserver_onaudiovolumeindication_playerobserver__parameters"></a>

### 参数 [#参数-33]

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

播放器当前的音量，取值范围为 [0, 225]。

</Parameter>
</ParameterList>

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

- [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)

<a id="callback_playerobserver_onevent"></a>

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

## onEvent [#onevent]

播放器事件回调。

<a id="callback_playerobserver_onevent__prototype"></a>

```java
public void onEvent(int event)
```

<a id="callback_playerobserver_onevent__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

如果你需要监听播放器事件，必须先调用 [registerObserver](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_registerobserver_player) 注册播放器观察者对象。

<a id="callback_playerobserver_onevent__timing"></a>

### 触发时机 [#触发时机-1]

该回调在播放器事件发生变化时被触发。

<a id="callback_playerobserver_onevent__parameters"></a>

### 参数 [#参数-34]

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

播放器事件。

:::note
注： 详见 [PlayerEvent](/zh-CN/api-reference/rtc/android/enum-rteplayerevent)。
:::

</Parameter>
</ParameterList>

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

- [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)

<a id="callback_playerobserver_onmetadata_playerobserver"></a>

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

## onMetadata [2/2] [#onmetadata-22]

接收媒体流附加信息的回调。

<a id="callback_playerobserver_onmetadata_playerobserver__prototype"></a>

```java
public void onMetadata(int type, byte[] data)
```

<a id="callback_playerobserver_onmetadata_playerobserver__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

调用 [registerObserver](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_registerobserver_player) 注册播放器观察者对象后，才能接收媒体流中的附加信息。

<a id="callback_playerobserver_onmetadata_playerobserver__timing"></a>

### 触发时机 [#触发时机-2]

该回调在 SDK 解析播放器正在播放的媒体流中的附加信息后触发，报告数据类型及其具体内容。

<a id="callback_playerobserver_onmetadata_playerobserver__parameters"></a>

### 参数 [#参数-35]

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

附加信息的类型：

- 0：SEI（Supplemental Enhancement Information）类型。

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

解析后的附加信息。

</Parameter>
</ParameterList>

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

- [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)

<a id="callback_playerobserver_onplayerinfoupdated_playerobserver"></a>

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

## onPlayerInfoUpdated [2/2] [#onplayerinfoupdated-22]

播放器和媒体流信息发生变化回调。

<a id="callback_playerobserver_onplayerinfoupdated_playerobserver__prototype"></a>

```java
public void onPlayerInfoUpdated(PlayerInfo info)
```

<a id="callback_playerobserver_onplayerinfoupdated_playerobserver__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

你可以调用 [registerObserver](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_registerobserver_player) 注册播放器观察者对象来获取播放器和媒体流的信息，也可以直接调用 [getInfo](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_getinfo) 方法获取信息。

<a id="callback_playerobserver_onplayerinfoupdated_playerobserver__timing"></a>

### 触发时机 [#触发时机-3]

该回调在播放器和媒体流信息发生变化时被触发。

<a id="callback_playerobserver_onplayerinfoupdated_playerobserver__parameters"></a>

### 参数 [#参数-36]

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

播放器及媒体流的相关信息，详见 [PlayerInfo](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_rteplayerinfo)。

</Parameter>
</ParameterList>

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

- [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)

<a id="callback_playerobserver_onpositionchanged_playerobserver"></a>

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

## onPositionChanged [#onpositionchanged]

播放进度变化回调。

<a id="callback_playerobserver_onpositionchanged_playerobserver__prototype"></a>

```java
public void onPositionChanged(long curr_time, long utc_time)
```

<a id="callback_playerobserver_onpositionchanged_playerobserver__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="callback_playerobserver_onpositionchanged_playerobserver__timing"></a>

### 触发时机 [#触发时机-4]

该回调在媒体资源播放过程中每秒触发一次。

<a id="callback_playerobserver_onpositionchanged_playerobserver__parameters"></a>

### 参数 [#参数-37]

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

当前播放进度，单位为毫秒。

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

当前 NTP（网络时间协议）时间，单位为毫秒。

</Parameter>
</ParameterList>

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

- [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)

<a id="callback_playerobserver_onresolutionchanged"></a>

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

## onResolutionChanged [#onresolutionchanged]

视频分辨率变化的回调。

<a id="callback_playerobserver_onresolutionchanged__prototype"></a>

```java
public void onResolutionChanged(int width, int height)
```

<a id="callback_playerobserver_onresolutionchanged__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

你必须先调用 [registerObserver](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_registerobserver_player) 注册一个播放器观察者对象，才能监听视频流分辨率的变化。

<a id="callback_playerobserver_onresolutionchanged__timing"></a>

### 触发时机 [#触发时机-5]

该回调在视频流的分辨率发生变化时被触发，报告当前视频的宽度和高度。

<a id="callback_playerobserver_onresolutionchanged__parameters"></a>

### 参数 [#参数-38]

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

视频帧的宽度，单位为 px。

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

视频帧的高度，单位为 px。

</Parameter>
</ParameterList>

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

- [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)

<a id="callback_asynccallback_onresult_asynccallback"></a>

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

## onResult [#onresult]

[onResult](/zh-CN/api-reference/rtc/android/play/rte-player#callback_asynccallback_onresult_asynccallback) 回调，用于报告异步操作的结果。

<a id="callback_asynccallback_onresult_asynccallback__prototype"></a>

```java
@CalledByNative void onResult(Error error);
```

<a id="callback_asynccallback_onresult_asynccallback__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

<a id="callback_asynccallback_onresult_asynccallback__timing"></a>

### 触发时机 [#触发时机-6]

该回调在异步操作完成时被触发，用于报告操作结果。

<a id="callback_asynccallback_onresult_asynccallback__parameters"></a>

### 参数 [#参数-39]

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

状态码或错误码。详见 [Error](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_error)。

</Parameter>
</ParameterList>

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

- [AsyncCallback](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_asynccallback)

<a id="callback_playergetstatscallback_onresult_playergetstatscallback"></a>

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

## onResult [#onresult-1]

异步获取媒体资源统计信息操作完成时触发的回调。

<a id="callback_playergetstatscallback_onresult_playergetstatscallback__prototype"></a>

```java
@CalledByNative void onResult(PlayerStats playerStats, Error error);
```

<a id="callback_playergetstatscallback_onresult_playergetstatscallback__detailed_desc"></a>

<a id="callback_playergetstatscallback_onresult_playergetstatscallback__timing"></a>

### 触发时机 [#触发时机-7]

该回调在异步获取媒体资源信息的操作完成时被触发。

<a id="callback_playergetstatscallback_onresult_playergetstatscallback__parameters"></a>

### 参数 [#参数-40]

<ParameterList>
<a id="playerstats"></a>
<Parameter name="playerStats">

媒体资源的统计信息。详见 [PlayerStats](/zh-CN/api-reference/rtc/android/class-rteplayerstats)。

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

状态和错误信息。详见 [Error](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_error)。

</Parameter>
</ParameterList>

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

- [PlayerGetStatsCallback](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playergetstatscallback)

<a id="callback_playerobserver_onstatechanged"></a>

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

## onStateChanged [#onstatechanged]

播放器状态变化的回调。

<a id="callback_playerobserver_onstatechanged__prototype"></a>

```java
public void onStateChanged(int old_state, int new_state, Error error)
```

<a id="callback_playerobserver_onstatechanged__detailed_desc"></a>

:::info[自从]
自 v4.4.0 版本新增。
:::

如果你需要监听播放器状态的变化，必须先调用 [registerObserver](/zh-CN/api-reference/rtc/android/play/rte-player#api_player_registerobserver_player) 注册播放器观察者对象。

<a id="callback_playerobserver_onstatechanged__timing"></a>

### 触发时机 [#触发时机-8]

该回调在播放器状态发生变化时被触发。

<a id="callback_playerobserver_onstatechanged__parameters"></a>

### 参数 [#参数-41]

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

变更前的播放器状态。详见 [PlayerState](/zh-CN/api-reference/rtc/android/enum-rteplayerstate)。

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

当前的播放器状态。详见 [PlayerState](/zh-CN/api-reference/rtc/android/enum-rteplayerstate)。如果当前状态为 `FAILED`，你可以通过 `error` 参数获取详细的错误信息。

</Parameter>
<a id="error-2"></a>
<Parameter name="error">

状态或错误信息。详见 [Error](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_error)。

</Parameter>
</ParameterList>

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

- [PlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_playerobserver)
