媒体资源打开

  • C++

更新时间不可用

open

打开媒体资源。

C++
virtual int open(const char* url, int64_t startPos) = 0;

注: open 为异步调用。

调用时机

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

相关回调

成功调用该方法后,SDK 会触发 onPlayerSourceStateChanged 回调报告播放状态。在收到播放状态为 PLAYER_STATE_OPEN_COMPLETED 的通知后,你可以调用 play 方法播放媒体文件。

参数

参数名描述
url

媒体文件路径,支持本地路径和在线路径。

startPos

播放起始位置,单位为毫秒。默认值为 0。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

openWithMediaSource

打开媒体文件并配置播放场景。

C++
virtual int openWithMediaSource(const media::base::MediaSource &source) = 0;

该方法支持打开来自不同来源的媒体文件,包括自定义媒体源,并允许你配置播放场景。

注: openWithMediaSource 为异步调用。如果你需要播放媒体文件,请确保在调用 play 方法前,已收到 onPlayerSourceStateChanged 回调并报告 PLAYER_STATE_OPEN_COMPLETED。

调用时机

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

参数

参数名描述
source

媒体资源。详见 MediaSource。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

preloadSrc

预加载媒体资源。

C++
virtual int preloadSrc(const char* src, int64_t startPos) = 0;

你可以调用该方法将媒体资源预加载到播放列表中。如果需要预加载多个媒体资源,可以多次调用该方法。调用该方法后,如果在 onPreloadEvent 回调中收到 PLAYER_PRELOAD_EVENT_COMPLETE 事件,表示预加载成功;如果收到 PLAYER_PRELOAD_EVENT_ERROR 事件,表示预加载失败。预加载成功后,如果你希望播放该媒体资源,请调用 playPreloadedSrc;如果希望清空播放列表,请调用 stop。

注:

  • 在调用该方法之前,请确保已成功调用 open 或 openWithMediaSource 打开媒体资源。
  • 声网不支持将重复的媒体资源预加载到播放列表中。但你可以将正在播放的媒体资源再次预加载到播放列表中。

参数

参数名描述
src

媒体资源的 URL。

startPos

媒体资源预加载到播放列表后开始播放的位置(单位:毫秒)。

注: 预加载直播流时,请将该参数设为 0。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

switchSrc

切换当前正在播放的媒体资源。

C++
virtual int switchSrc(const char* src, bool syncPts = true) = 0;

你可以根据当前的网络状况调用该方法切换播放的媒体资源。例如:

  • 当网络较差时,切换为码率较低的媒体资源地址;
  • 当网络良好时,切换为码率较高的媒体资源地址。

调用该方法后,如果收到 onPlayerEvent 回调报告 PLAYER_EVENT_SWITCH_COMPLETE 事件,表示切换成功;如果切换失败,SDK 会自动重试 3 次,若仍失败,将通过 onPlayerEvent 回调报告 PLAYER_EVENT_SWITCH_ERROR 事件,表示切换失败。

注:

  • 请确保在调用 open 方法之后再调用该方法。

  • 为确保正常播放,调用该方法时请注意以下事项:

    • 播放暂停时不要调用该方法;
    • 切换过程中不要调用 seek 方法;
    • 切换前请确保当前播放位置未超过目标媒体资源的总时长。

参数

参数名描述
src

媒体资源的 URL 地址。

syncPts

是否在切换前后同步播放位置(毫秒):

  • true:同步切换前后的播放位置。
  • false:(默认)不同步切换前后的播放位置。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

unloadSrc

卸载预加载的媒体资源。

C++
virtual int unloadSrc(const char* src) = 0;

注: unloadSrc 方法无法释放正在播放的媒体资源。

参数

参数名描述
src

媒体资源的 URL。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类