# 媒体播放器缓存 (/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-cache)

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

<a id="toc_mediaplayer_cache"></a>

<a id="api_imediaplayercachemanager_enableautoremovecache"></a>

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

## enableAutoRemoveCache [#enableautoremovecache]

设置是否自动删除缓存的媒体文件。

<a id="api_imediaplayercachemanager_enableautoremovecache__prototype"></a>

```java
int enableAutoRemoveCache(boolean enable);
```

<a id="api_imediaplayercachemanager_enableautoremovecache__detailed_desc"></a>

当缓存的媒体文件数量或大小超过设置的限制时，启用该功能后，SDK 会自动删除最近最少使用的缓存文件。

<a id="api_imediaplayercachemanager_enableautoremovecache__parameters"></a>

### 参数 [#参数]

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

是否启用 SDK 自动删除缓存的媒体文件：

- true：自动删除缓存的媒体文件。
- false：（默认）不自动删除缓存的媒体文件。

</Parameter>
</ParameterList>

<a id="api_imediaplayercachemanager_enableautoremovecache__return_values"></a>

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

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_getcachedir"></a>

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

## getCacheDir [#getcachedir]

获取缓存媒体文件的存储路径。

<a id="api_imediaplayercachemanager_getcachedir__prototype"></a>

```java
String getCacheDir();
```

<a id="api_imediaplayercachemanager_getcachedir__detailed_desc"></a>

如果在调用该方法之前未调用 [setCacheDir](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-cache#api_imediaplayercachemanager_setcachedir) 设置缓存媒体文件的存储路径，则该方法返回 SDK 默认使用的存储路径。

<a id="api_imediaplayercachemanager_getcachedir__return_values"></a>

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

方法调用成功时，返回缓存媒体文件的存储路径。
方法调用失败，返回空字符串。

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

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

<a id="api_imediaplayercachemanager_getcachefilecount"></a>

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

## getCacheFileCount [#getcachefilecount]

获取已缓存的媒体文件数量。

<a id="api_imediaplayercachemanager_getcachefilecount__prototype"></a>

```java
int getCacheFileCount();
```

<a id="api_imediaplayercachemanager_getcachefilecount__detailed_desc"></a>

<a id="api_imediaplayercachemanager_getcachefilecount__return_values"></a>

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

- 0：方法调用成功，返回已缓存的媒体文件数量。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_getmaxcachefilecount"></a>

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

## getMaxCacheFileCount [#getmaxcachefilecount]

获取可缓存的媒体文件的最大数量。

<a id="api_imediaplayercachemanager_getmaxcachefilecount__prototype"></a>

```java
int getMaxCacheFileCount();
```

<a id="api_imediaplayercachemanager_getmaxcachefilecount__detailed_desc"></a>

默认情况下，可缓存的媒体文件最大数量为 1000。

<a id="api_imediaplayercachemanager_getmaxcachefilecount__return_values"></a>

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

- 0：方法调用成功，返回获取可缓存的媒体文件的最大数量。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_getmaxcachefilesize"></a>

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

## getMaxCacheFileSize [#getmaxcachefilesize]

获取缓存媒体文件聚合存储空间的最大大小。

<a id="api_imediaplayercachemanager_getmaxcachefilesize__prototype"></a>

```java
long getMaxCacheFileSize();
```

<a id="api_imediaplayercachemanager_getmaxcachefilesize__detailed_desc"></a>

你可以调用 [setMaxCacheFileSize](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-cache#api_imediaplayercachemanager_setmaxcachefilesize) 方法根据实际场景设置缓存媒体文件聚合存储空间的最大大小。

<a id="api_imediaplayercachemanager_getmaxcachefilesize__return_values"></a>

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

- &gt; 0：方法调用成功，返回缓存媒体文件聚合存储空间的最大大小（单位为字节）。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_removeallcaches"></a>

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

## removeAllCaches [#removeallcaches]

删除媒体播放器中所有缓存的媒体文件。

<a id="api_imediaplayercachemanager_removeallcaches__prototype"></a>

```java
int removeAllCaches();
```

<a id="api_imediaplayercachemanager_removeallcaches__detailed_desc"></a>

:::note
注： 当前正在播放的缓存媒体文件不会被删除。
:::

<a id="api_imediaplayercachemanager_removeallcaches__return_values"></a>

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

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_removecachebyuri"></a>

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

## removeCacheByUri [#removecachebyuri]

删除缓存的媒体文件。

<a id="api_imediaplayercachemanager_removecachebyuri__prototype"></a>

```java
int removeCacheByUri(String uri);
```

<a id="api_imediaplayercachemanager_removecachebyuri__detailed_desc"></a>

:::note
注： 当前正在播放的缓存媒体文件不会被删除。
:::

<a id="api_imediaplayercachemanager_removecachebyuri__parameters"></a>

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

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

要删除的媒体文件的 URI（统一资源标识符）。

</Parameter>
</ParameterList>

<a id="api_imediaplayercachemanager_removecachebyuri__return_values"></a>

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

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_removeoldcache"></a>

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

## removeOldCache [#removeoldcache]

删除最少使用的缓存媒体文件。

<a id="api_imediaplayercachemanager_removeoldcache__prototype"></a>

```java
int removeOldCache();
```

<a id="api_imediaplayercachemanager_removeoldcache__detailed_desc"></a>

你可以在缓存文件的存储空间即将达到上限时调用该方法。调用该方法后，SDK 会删除最少使用的缓存媒体文件。

:::note
注： [removeOldCache](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-cache#api_imediaplayercachemanager_removeoldcache) 不会删除当前正在播放的缓存媒体文件。
:::

<a id="api_imediaplayercachemanager_removeoldcache__return_values"></a>

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

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_setcachedir"></a>

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

## setCacheDir [#setcachedir]

设置要缓存的媒体文件的存储路径。

<a id="api_imediaplayercachemanager_setcachedir__prototype"></a>

```java
int setCacheDir(String path);
```

<a id="api_imediaplayercachemanager_setcachedir__detailed_desc"></a>

:::note
注： 请确保在调用该方法前已初始化 [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)。
:::

<a id="api_imediaplayercachemanager_setcachedir__parameters"></a>

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

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

要缓存的媒体文件的绝对路径。确保该目录已存在且可写。

</Parameter>
</ParameterList>

<a id="api_imediaplayercachemanager_setcachedir__return_values"></a>

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

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_setmaxcachefilecount"></a>

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

## setMaxCacheFileCount [#setmaxcachefilecount]

设置可缓存的媒体文件数量上限。

<a id="api_imediaplayercachemanager_setmaxcachefilecount__prototype"></a>

```java
int setMaxCacheFileCount(int count);
```

<a id="api_imediaplayercachemanager_setmaxcachefilecount__detailed_desc"></a>

<a id="api_imediaplayercachemanager_setmaxcachefilecount__parameters"></a>

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

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

可缓存的媒体文件数量上限（默认值为 1000）。

</Parameter>
</ParameterList>

<a id="api_imediaplayercachemanager_setmaxcachefilecount__return_values"></a>

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

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="api_imediaplayercachemanager_setmaxcachefilesize"></a>

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

## setMaxCacheFileSize [#setmaxcachefilesize]

设置缓存媒体文件的聚合存储空间的最大大小。

<a id="api_imediaplayercachemanager_setmaxcachefilesize__prototype"></a>

```java
int setMaxCacheFileSize(long cacheSize);
```

<a id="api_imediaplayercachemanager_setmaxcachefilesize__detailed_desc"></a>

<a id="api_imediaplayercachemanager_setmaxcachefilesize__parameters"></a>

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

<ParameterList>
<a id="cachesize"></a>
<Parameter name="cacheSize">

缓存媒体文件的聚合存储空间的最大大小，单位为字节。（默认值为 1 GB。）

</Parameter>
</ParameterList>

<a id="api_imediaplayercachemanager_setmaxcachefilesize__return_values"></a>

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

- 0：方法调用成功。
- &lt; 0：方法调用失败，详见 [MediaPlayerReason](/zh-CN/api-reference/rtc/android/enum-mediaplayerreason)。

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

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

<a id="callback_imediaplayersourceobserver_onplayercachestats"></a>

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

## onPlayerCacheStats [#onplayercachestats]

报告正在缓存的媒体文件的统计信息回调。

<a id="callback_imediaplayersourceobserver_onplayercachestats__prototype"></a>

```java
void onPlayerCacheStats(CacheStatistics stats)
```

<a id="callback_imediaplayersourceobserver_onplayercachestats__detailed_desc"></a>

调用 [openWithMediaSource](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-open#api_imediaplayer_openwithmediasource) 方法并将 `enableCache` 设置为 true 后，SDK 每秒触发一次该回调。

<a id="callback_imediaplayersourceobserver_onplayercachestats__timing"></a>

### 触发时机 [#触发时机]

该回调在调用 [openWithMediaSource](/zh-CN/api-reference/rtc/android/play/mediaplayer/mediaplayer-open#api_imediaplayer_openwithmediasource) 方法并将 `enableCache` 设置为 true 后，每秒触发一次。

<a id="callback_imediaplayersourceobserver_onplayercachestats__parameters"></a>

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

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

正在缓存的媒体文件的统计信息。详见 [CacheStatistics](/zh-CN/api-reference/rtc/android/class-cachestatistics)。

</Parameter>
</ParameterList>

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

- [IMediaPlayerObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_imediaplayersourceobserver)
