媒体播放器缓存
enableAutoRemoveCache
设置是否开启自动清除缓存文件功能。
Dart
Future<void> enableAutoRemoveCache(bool enable);
开启自动清除缓存文件后,当播放器中缓存的媒体文件超过你设置的文件数量或总缓存大小的上限时,SDK 会自动清除近期最少使用的一个缓存文件。
参数
- enable
- 是否自动清除缓存文件:
- true:开启自动清除缓存文件功能。
- false:(默认)关闭自动清除缓存文件功能。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类- < 0:方法调用失败,详见 MediaPlayerReason。
getCacheDir
获取缓存文件的储存路径。
Dart
Future<String> getCacheDir(int length);
如果你在调用该方法前未曾调用 setCacheDir 方法自定义缓存文件的储存路径,该方法返回的为 SDK 默认的缓存文件储存路径。
参数
- length
- 输入参数,缓存文件储存路径字符串的最大长度。
返回值
- 方法调用成功时,返回缓存文件的储存路径。
- < 0:方法调用失败,详见 MediaPlayerReason。
getCacheFileCount
获取当前已缓存的媒体文件的总数量。
Dart
Future<int> getCacheFileCount();
返回值
- ≥ 0:方法调用成功,返回当前已缓存的媒体文件的总数量。
- < 0:方法调用失败,详见 MediaPlayerReason。
getMaxCacheFileCount
获取所设置的缓存文件数量上限。
Dart
Future<int> getMaxCacheFileCount();
SDK 默认的缓存文件数量上限为 1000。
返回值
- > 0:方法调用成功,返回缓存文件数量的上限。
- < 0:方法调用失败,详见 MediaPlayerReason。
getMaxCacheFileSize
获取所设置的缓存文件总缓存的上限。
Dart
Future<int> getMaxCacheFileSize();
SDK 默认的缓存文件总缓存上限为 1GB。你可以调用 setMaxCacheFileSize 方法自定义总缓存大小的上限。
返回值
- > 0:方法调用成功,返回缓存文件的总缓存上限,单位为字节。
- < 0:方法调用失败,详见 MediaPlayerReason。
removeAllCaches
删除媒体播放器中所有已缓存的媒体文件。
Dart
Future<void> removeAllCaches();
信息
该方法不会删除正在播放中的已缓存媒体文件。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类- < 0:方法调用失败,详见 MediaPlayerReason。
removeCacheByUri
删除指定的已缓存媒体文件。
Dart
uture<void> removeCacheByUri(String uri);
信息
该方法不会删除正在播放中的已缓存媒体文件。
参数
- uri
- 待删除的缓存文件的 URI(Uniform Resource Identifier),可用于标识媒体文件。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类- < 0:方法调用失败,详见 MediaPlayerReason。
removeOldCache
删除媒体播放器中近期最少使用的一个缓存媒体文件。
Dart
Future<void> removeOldCache();
缓存媒体文件占用过多空间时,你可以调用该方法清理缓存文件。调用该方法后,SDK 会删除最少使用的一个缓存媒体文件。
信息
当你调用此方法删除缓存媒体文件时,当前正在播放的已缓存媒体文件不会被删除。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类- < 0:方法调用失败,详见 MediaPlayerReason。
setCacheDir
设置待缓存的媒体文件的储存路径。
Dart
Future<void> setCacheDir(String path);
信息
该方法需在初始化 RtcEngine 之后调用。
参数
- path
- 缓存文件储存的绝对路径。请确保指定的目录存在且可写。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类- < 0:方法调用失败,详见 MediaPlayerReason。
setMaxCacheFileCount
设置缓存媒体文件数量的上限。
Dart
Future<void> setMaxCacheFileCount(int count);
参数
- count
- 可缓存的媒体文件数量的上限,默认值为 1000。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类- < 0:方法调用失败,详见 MediaPlayerReason。
setMaxCacheFileSize
设置缓存媒体文件的总缓存大小的上限。
Dart
Future<void> setMaxCacheFileSize(int cacheSize);
参数
- cacheSize
- 缓存媒体文件的总缓存上限,单位为字节。默认为 1 GB。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类- < 0:方法调用失败,详见 MediaPlayerReason。
onPlayerCacheStats
报告当前缓存中的媒体资源的相关信息。
Dart
final void Function(CacheStatistics stats)? onPlayerCacheStats;
调用 openWithMediaSource 方法且设置 enableCache 成员为 true 后,SDK 会在媒体文件打开后每秒触发一次该回调,报告当前缓存的媒体文件的统计数据。
参数
- stats
- 缓存中的媒体资源的相关信息,详见 CacheStatistics。