媒体资源打开
Open
打开媒体资源。
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int Open(const FString & url, int64 startPos);
该方法为异步调用。
调用时机
加入频道前后均可调用。
调用限制
无。
相关回调
调用该方法后会触发 OnPlayerSourceStateChanged 回调。在收到报告播放状态为 PLAYER_STATE_OPEN_COMPLETED 后,你可以调用 Play 方法播放媒体文件。
参数
- url
- 设置媒体文件的路径,支持本地和在线文件。
- startPos
- 设置起始播放位置(毫秒),默认值为 0。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
OpenWithMediaSource
打开媒体资源并进行播放设置。
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int OpenWithMediaSource(const FAgoraMediaSource& source);
该方法支持你打开不同类型的媒体资源,包括自定义的媒体资源文件,并可进行播放设置。
调用时机
该方法在加入频道前后均可调用。
调用限制
该方法为异步调用。如需播放媒体文件,需要在收到 OnPlayerSourceStateChanged 回调报告状态为 PLAYER_STATE_OPEN_COMPLETED 后再调用 Play 方法播放媒体文件。
参数
- source
- 媒体资源,详见 FAgoraMediaSource。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
PreloadSrc
预加载媒体资源。
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int PreloadSrc(const FString& src, int64 startPos);
详情
你可以调用该方法将一个媒体资源预加载到播放列表中。如果需要预加载多个媒体资源,你可以多次调用该方法。
调用该方法后,如果收到 OnPreloadEvent 回调报告事件 PLAYER_PRELOAD_EVENT_COMPLETE,则预加载成功;如果你收到 OnPreloadEvent 回调报告事件 PLAYER_PRELOAD_EVENT_ERROR,则预加载失败。
预加载成功后,如果你想播放媒体资源,请调用 PlayPreloadedSrc;如果你想清空播放列表,请调用 Stop。
- 调用该方法前,请确保你已经调用 Open 或 OpenWithMediaSource 成功打开媒体资源。
- SDK 不支持你预加载重复的媒体资源到播放列表,但支持你将正在播放的媒体资源再次预加载到播放列表。
参数
- src
- 媒体资源的网络路径。
- startPos
- 预加载到播放列表后,开始播放时的起始位置(毫秒)。预加载直播流时,将该参数设置为 0。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SwitchSrc
切换媒体资源。
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int SwitchSrc(const FString& src, bool syncPts = true);
详情
- 在网络较差时,将播放的媒体资源切换为较低码率的媒体资源地址。
- 在网络较好时,将播放的媒体资源切换为较高码率的媒体资源地址。
调用该方法后,如果你收到 OnPlayerEvent 回调报告事件 PLAYER_EVENT_SWITCH_COMPLETE,则媒体资源切换成功;如果你收到 OnPlayerEvent 回调报告事件 PLAYER_EVENT_SWITCH_ERROR,则媒体资源切换失败。
参数
- src
- 媒体资源的网络路径。
- syncPts
- 是否同步切换前后的起始播放位置:
true
:同步。false
:(默认) 不同步。
如果媒体资源为直播流,你只能将该参数设置为
false
,否则 SDK 切换媒体资源会失败。如果媒体资源为点播流,你可以根据场景需求对该参数赋值。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。