# 初始化 (/zh-CN/api-reference/rtc/cpp-all-platforms/play/mediaplayer/mediaplayer-initialize)

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

<a id="toc_mediaplayer_initialize"></a>

<a id="api_irtcengine_createmediaplayer"></a>

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

## createMediaPlayer [#createmediaplayer]

创建一个 [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer) 对象。

<a id="api_irtcengine_createmediaplayer__prototype"></a>

```cpp
virtual agora_refptr<IMediaPlayer> createMediaPlayer() = 0;
```

<a id="api_irtcengine_createmediaplayer__detailed_desc"></a>

在调用 [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer) 中的任何 API 之前，必须先调用该方法创建一个 [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer) 实例。如果需要多个实例，可以多次调用该方法。

<a id="api_irtcengine_createmediaplayer__timing"></a>

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

你可以在加入频道前或加入频道后调用此方法。

<a id="api_irtcengine_createmediaplayer__return_values"></a>

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

- 方法调用成功，返回 [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer) 对象，详见 [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)。
- 方法调用失败，返回 NULL。

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

- [IRtcEngine](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_destroymediaplayer"></a>

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

## destroyMediaPlayer [#destroymediaplayer]

销毁一个 [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer) 实例。

<a id="api_irtcengine_destroymediaplayer__prototype"></a>

```cpp
virtual int destroyMediaPlayer(agora_refptr<IMediaPlayer> media_player) = 0;
```

<a id="api_irtcengine_destroymediaplayer__detailed_desc"></a>

<a id="api_irtcengine_destroymediaplayer__parameters"></a>

### 参数 [#参数]

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

[IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer) 对象。详见 [IMediaPlayer](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayer)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_destroymediaplayer__return_values"></a>

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

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

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

- [IRtcEngine](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_irtcengine)

<a id="api_imediaplayercachemanager_getmediaplayercachemanager"></a>

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

## getMediaPlayerCacheManager [#getmediaplayercachemanager]

获取一个 [IMediaPlayerCacheManager](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayercachemanager) 实例。

<a id="api_imediaplayercachemanager_getmediaplayercachemanager__prototype"></a>

```cpp
AGORA_API agora::rtc::IMediaPlayerCacheManager* AGORA_CALL getMediaPlayerCacheManager();
```

<a id="api_imediaplayercachemanager_getmediaplayercachemanager__detailed_desc"></a>

在调用 [IMediaPlayerCacheManager](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayercachemanager) 中的任何 API 前，你需要调用该方法获取媒体播放器的缓存管理器实例。

:::note
注： [IMediaPlayerCacheManager](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayercachemanager) 采用单例模式，因此多次调用该方法会返回同一个实例。
:::

<a id="api_imediaplayercachemanager_getmediaplayercachemanager__timing"></a>

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

调用时序：请确保在调用该方法前已初始化 [IRtcEngine](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_irtcengine)。

<a id="api_imediaplayercachemanager_getmediaplayercachemanager__return_values"></a>

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

- 方法调用成功，返回 [IMediaPlayerCacheManager](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayercachemanager) 实例，详见 [IMediaPlayerCacheManager](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayercachemanager)。
- 方法调用失败，返回 NULL。

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

- [IMediaPlayerCacheManager](/zh-CN/api-reference/rtc/cpp-all-platforms/rtc-interface-class#class_imediaplayercachemanager)
