URL 拉流播放
addView:config:error:
添加渲染视图。
- (BOOL)addView:(AgoraRteView * _Nonnull)view config:(AgoraRteViewConfig* _Nullable)config error:(AgoraRteError* _Nullable)error;
适用场景
当你需要使用播放器播放视频,你可以调用该方法将一个视图(view)添加到视频渲染器中,以便显示视频内容。
调用时机
该方法需要在 setCanvas:error: 之前调用。
调用限制
当前仅支持添加一个视图。
参数
- view
- UIView 对象。
- config
- View 对象的设置,目前请传空。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:添加视图成功。NO
:添加视图失败。
code
获取接口调用返回的错误码。
- (AgoraRteErrorCode)code;
调用时机
当调用 API 失败时,可调用此方法以获取错误码。
调用限制
无。
返回值
错误码。详见 AgoraRteErrorCode。
所属接口类destroy:
销毁 RTE 对象。
- (BOOL)destroy:(AgoraRteError * _Nullable)error;
该方法释放 RTE 对象使用的所有资源。
调用限制
无。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:销毁成功。NO
:销毁失败。
getInfo:error:
获取播放器播放及媒体流的相关信息。
- (BOOL)getInfo:(AgoraRtePlayerInfo * _Nonnull)info error:(AgoraRteError * _Nullable)error;
你可以通过该方法获取播放器及媒体流的相关信息,例如音频采样率、视频帧的尺寸等信息。
调用时机
该方法需要在 initWithRte:initialConfig: 之后调用。
调用限制
无。
参数
- info
- 播放器及媒体流的相关信息,详见 AgoraRtePlayerInfo。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:获取信息成功。NO
:获取信息失败。
message
获取详细的错误信息。
- (NSString * _Nullable)message;
调用时机
当 API 调用失败后,你可以调用该方法获取错误信息来帮助排查问题。
调用限制
无。
返回值
muteAudio:
订阅或取消订阅主播的音频流。
- (BOOL)muteAudio:(BOOL)mute error:(AgoraRteError * _Nullable)error;
观众端可以调用该方法来设置是否订阅主播的音频流。
调用时机
该方法需要在 openWithUrl:startTime:cb: 之后调用。
调用限制
无。
相关回调
成功调用该方法后,会触发 onPlayerInfoUpdated: 回调报告最新的播放器和媒体流信息。
参数
- mute
- 是否订阅主播的音频流:
YES
:不订阅主播的音频流。NO
:订阅主播的音频流。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:操作成功。NO
:操作失败。
muteVideo:
订阅或取消订阅主播的视频流。
- (BOOL)muteVideo:(BOOL)mute error:(AgoraRteError * _Nullable)error;
观众端可以调用该方法来设置是否订阅主播的视频流。
调用时机
该方法需要在 openWithUrl:startTime:cb: 之后调用。
调用限制
无。
相关回调
成功调用该方法后,会触发 onPlayerInfoUpdated: 回调报告最新的播放器和媒体流信息。
参数
- mute
- 是否订阅主播的视频流:
YES
:不订阅主播的视频流。NO
:订阅主播的视频流。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:操作成功。NO
:操作失败。
openWithUrl:startTime:cb:
打开 URL 资源。
- (void)openWithUrl:(NSString * _Nonnull)url startTime:(uint64_t)startTime cb:(void (^_Nullable)(AgoraRteError* _Nullable err))cb;
该方法支持通过 URL 打开实时流媒体。如果你想要加快打开 URL 资源的速度,可以在调用该方法前,调用 preloadWithUrl:error: 预加载资源。
如果资源打开失败,你会收到 onStateChanged:newState:error: 的回调报告状态为 AgoraRtePlayerStateFailed。此时你需要先调用 pause: 然后再调用 openWithUrl:startTime:cb: 重新打开 URL 资源。如果你设置关闭了自动播放,打开资源后可以调用 play: 进行播放。
调用时机
该方法需要在 initWithRte:initialConfig: 之后调用。
调用限制
该方法目前仅支持打开以 rte://
开头的 URL。
相关回调
调用该方法后会触发 onStateChanged:newState:error: 回调,报告播放器状态为 AgoraRtePlayerStateOpening,表示正在打开 URL。成功打开后,报告播放器状态为 AgoraRtePlayerStateOpenCompleted。
参数
- url
- 带
rte://
前缀的 URL。各字段的详细说明详见观众端 URL 拉流。 - startTime
- 预留参数。
- cb
- 一个异步回调函数,用于通知打开 URL 资源的结果。如果打开过程中出错,你可以通过该回调中的 err 参数得知具体错误信息。详见 AgoraRteError。
pause:
暂停播放。
- (BOOL)pause:(AgoraRteError * _Nullable)error;
调用时机
该方法需要在 play: 之后调用。
调用限制
无。
相关回调
成功调用该方法后会触发 onStateChanged:newState:error: 回调,报告播放器状态为 AgoraRtePlayerStatePaused。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:暂停播放成功。NO
:暂停播放失败。
initWithRte:initialConfig:
构造一个播放器对象。
- (instancetype _Nonnull)initWithRte:(AgoraRte * _Nonnull)rte initialConfig:(AgoraRtePlayerInitialConfig * _Nullable)config;
调用时机
该方法需要在 initMediaEngine:error: 之后调用。
调用限制
无。
参数
- rte
- 一个 AgoraRte 对象。
- config
- 播放器对象初始化设置,可传空指针。
play:
播放 URL 资源。
- (BOOL)play:(AgoraRteError * _Nullable)error;
如果你关闭了自动播放,当你调用 openWithUrl:startTime:cb: 成功打开实时流媒体,你可以调用此方法进行播放。
调用时机
请在收到 onStateChanged:newState:error: 回调报告状态为 AgoraRtePlayerStateOpenCompleted 后再调用该方法。
调用限制
该方法目前仅支持播放带 rte://
前缀的 URL。
相关回调
成功调用该方法后,会触发 onStateChanged:newState:error: 回调来报告播放器状态。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:播放成功。NO
:播放失败。
preloadWithUrl:error:
预加载 URL 资源。
+ (BOOL)preloadWithUrl:(NSString * _Nonnull)url error:(AgoraRteError * _Nullable)error;
成功预加载后,可以加快通过 openWithUrl:startTime:cb: 打开 URL 资源的速度。当需要使用这些资源时,可以更加快速地访问,缩短等待的过程。
适用场景
在打开媒体资源之前,提前加载可以减少用户等待时间,提供更流畅的视听体验。
调用时机
该方法需要在 openWithUrl:startTime:cb: 之前调用。
调用限制
该方法目前仅对带 rte://
前缀的 URL 生效,最多可以预加载 20 个 URL。如果超出限制,新预加载的 URL 将会替换最早的 URL。
参数
- url
- 带
rte://
前缀的 URL。各字段的详细说明详见观众端 URL 拉流。 - error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:预加载成功。NO
:预加载失败。
removeView:config:error:
移除渲染视图。
- (BOOL)removeView:(AgoraRteView * _Nonnull)view config:(AgoraRteViewConfig* _Nullable)config error:(AgoraRteError* _Nullable)error;
当你调用 addView:config:error: 添加视图后,如果你需要移除渲染视图,可调用此方法。
调用时机
该方法需在 addView:config:error: 后调用。
调用限制
一次只能移除一个视图。
参数
- view
- 需要移除的视图对象。
- config
- View 对象的设置,目前请传空。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:移除视图成功。NO
:移除视图失败。
registerObserver:error:
注册播放器观测器的对象。
- (BOOL)registerObserver:(AgoraRtePlayerObserver *_Nonnull)observer error:(AgoraRteError * _Nullable)error;
调用该方法前,你需要实现一个继承自 AgoraRtePlayerObserver 的接口类。
调用时机
该方法需要在 initWithRte:initialConfig: 之后调用。
调用限制
无。
参数
- observer
- 接口对象实例,详见 AgoraRtePlayerObserver。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:注册成功。NO
:注册失败。
initWithInitialConfig:
构造一个 RTE 对象。
- (instancetype _Nonnull)initWithInitialConfig:(AgoraRteInitialConfig * _Nullable)config;
RTE 对象用于组织和管理 Rte 内部相关资源。
调用时机
该方法需要在 initMediaEngine:error: 前调用。
调用限制
无。
参数
- config
- 初始化设置,当前可传空。
返回值
- 方法调用成功,返回一个 RTE 对象。
- 方法调用失败,返回
nil
。
setAbrFallbackLayer:error:
设置已订阅的视频流的回退选项。
- (void)setAbrFallbackLayer:(AgoraRteAbrFallbackLayer)layer error:(AgoraRteError * _Nullable)error;
网络不理想的环境下,实时通信音视频的质量会下降。调用该方法后,SDK 会在网络情况差的时候将视频流的分辨率回退到你指定的视频质量层级。不同的视频质量层级对应不同的分辨率和码率。同时,SDK 会持续监控网络质量,并在网络质量改善时恢复至你所订阅的视频流质量层级。
默认情况下,调用该方法后只能在源频道选择回退至 AgoraRteAbrFallbackLow 或 AgoraRteAbrFallbackAudioOnly。如果你对视频体验有更高要求,你可以联系技术支持开通 ABR 功能。启用该功能后,可以在转码频道选择回退到所有质量层级的视频流,并支持自定义不同质量层级的视频流所对应的分辨率。
适用场景
- 在一般场景下,你可以调用该方法并将回退的质量层级设为 AgoraRteAbrFallbackLow 或 AgoraRteAbrFallbackAudioOnly,SDK 会在网络情况差的时候将视频流回退为低质量的视频流、或是仅接收音频流。
- 如果对视频流回退的分辨率要求较高,可以联系联系技术支持开通 ABR 功能。开通后,你可以自定义每个层级的分辨率。SDK 会以你指定的最低质量层级分辨率为下限,在此范围内根据网络状况动态调整分辨率。详细功能实现详见观众端 URL 拉流。
调用时机
该方法需要在 setConfigs:error: 之前调用。
调用限制
调用该方法时如果你未开通 ABR 功能,视频流回退的质量层级只能选择 AgoraRteAbrFallbackLow 或 AgoraRteAbrFallbackAudioOnly。
参数
- layer
- 视频流回退的质量层级,详见 AgoraRteAbrFallbackLayer。在自定义 AgoraRteAbrFallbackLayer1 至 AgoraRteAbrFallbackLayer6 的分辨率时,可以参考下表进行设置,你也可以根据实际需求自行设置:
视频质量层级 分辨率 AgoraRteAbrSubscriptionLayer1 2160p(4K)
AgoraRteAbrSubscriptionLayer2 1440p(2K) AgoraRteAbrSubscriptionLayer3 1080p(HD) AgoraRteAbrSubscriptionLayer4 720p(HD) AgoraRteAbrSubscriptionLayer5 540p(SD) kRteAbrSubscriptionLayer6 480p(SD) 注意自定义分辨率时请务必将视频质量层级(Layer)按分辨率从大到小进行排序,分辨率相同时需按帧率从大到小进行排序。 - error
- 状态或错误信息,详见 AgoraRteError。
setAbrSubscriptionLayer:error:
设置订阅的媒体流的质量层级。
- (void)setAbrSubscriptionLayer:(AgoraRteAbrSubscriptionLayer)layer error:(AgoraRteError * _Nullable)error;
你可以根据实际的网络情况切换订阅不同的视频流质量层级,对应不同的分辨率。 默认情况下,调用该方法后观众只能在源频道切换订阅视频的大小流,即在 AgoraRteAbrSubscriptionHigh 和 AgoraRteAbrSubscriptionLow 之间切换。如对视频分辨率切换有更高要求,你可以联系技术支持开通 ABR(自适应码率)功能。启用该功能后,你可以自定义不同质量层级的视频流所对应的分辨率,观众可以在专门的转码频道根据需求切换所有质量层级的视频流。详细功能实现详见观众端 URL 拉流。
适用场景
在网络环境不稳定的情况下,观众端可以根据实际的网络状况来选择订阅合适的视频质量级别,以保证流畅的观感体验。
调用时机
该方法需要在 setConfigs:error: 之前调用。
调用限制
调用该方法时如果你未开通 ABR 功能,订阅的视频质量层级只能选择 AgoraRteAbrSubscriptionHigh 或 AgoraRteAbrSubscriptionLow。
参数
- layer
- 订阅的视频质量层级,详见 AgoraRteAbrSubscriptionLayer。在自定义 AgoraRteAbrSubscriptionLayer1 至 kRteAbrSubscriptionLayer6 的分辨率时,可以参考下表进行设置,你也可以根据实际需求自行设置:注意自定义分辨率时请务必将视频质量层级(Layer)按分辨率从大到小进行排序,分辨率相同时需按帧率从大到小进行排序。
视频质量层级 分辨率 AgoraRteAbrSubscriptionLayer1 2160p(4K)
AgoraRteAbrSubscriptionLayer2 1440p(2K) AgoraRteAbrSubscriptionLayer3 1080p(HD) AgoraRteAbrSubscriptionLayer4 720p(HD) AgoraRteAbrSubscriptionLayer5 540p(SD) kRteAbrSubscriptionLayer6 480p(SD) - error
- 状态或错误信息,详见 AgoraRteError。
setAppId:error:
设置 App ID。
- (void)setAppId:(NSString * _Nullable)appId error:(AgoraRteError * _Nullable)error;
调用时机
该方法需要在 initMediaEngine:error: 之前调用。
调用限制
无。
参数
- appId
- 你的项目的 App ID,在声网控制台获取。
- error
- 状态或错误信息,详见 AgoraRteError。
setAutoPlay:error:
设置是否自动播放。
- (void)setAutoPlay:(BOOL)autoPlay error:(AgoraRteError * _Nullable)error;
当你调用 openWithUrl:startTime:cb: 打开媒体流之前,你可以调用该方法设置是否自动播放。如不设置,默认会启用自动播放。
调用时机
该方法需要在 openWithUrl:startTime:cb: 之前调用。
调用限制
无。
参数
- autoPlay
- 是否自动播放:
YES
:(默认)开启自动播放。NO
:关闭自动播放。
- error
- 状态或错误信息,详见 AgoraRteError。
setCanvas:error:
设置视图窗口以显示视频。
- (BOOL)setCanvas:(AgoraRteCanvas *_Nonnull)canvas error:(AgoraRteError * _Nullable)error;
该方法用于指定一个 Canvas 对象来显示视频。当视频流成功播放后,视频画面会显示在这个指定的 Canvas 上。
调用时机
该方法需要在 initWithRte:initialConfig: 之后调用。
调用限制
无。
参数
- canvas
- 用于渲染视频帧的 Canvas 对象,详见 AgoraRteCanvas。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:设置成功。NO
:设置失败,可通过 error 参数返回的错误码了解详细信息。
setConfigs:error:
配置 RTE 对象的信息。
- (BOOL)setConfigs:(AgoraRteConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error;
你可以调用该方法来设置 App ID 等信息。
调用时机
该方法需要在 initWithInitialConfig: 之后调用。
调用限制
无。
参数
- config
- RTE 对象的设置,详见 AgoraRteConfig。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:配置成功。NO
:配置失败。
setConfigs:error:
播放器配置。
- (BOOL)setConfigs:(AgoraRtePlayerConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error;
你可以调用该方法来进行播放器设置,如开启自动播放、订阅不同分辨率和码率的视频流等。
调用时机
该方法需要在 initWithRte:initialConfig: 之后调用。
调用限制
无。
参数
- config
- 播放器设置的对象,详见 AgoraRtePlayerConfig。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:设置成功。NO
:设置失败。
setConfigs:error:
设置播放器视频渲染配置。
- (BOOL)setConfigs:(AgoraRteCanvasConfig* _Nonnull)config error:(AgoraRteError* _Nullable)error;
调用时机
该方法需要在 openWithUrl:startTime:cb: 之前调用。
调用限制
无。
参数
- config
- Canvas 对象的设置,详见 AgoraRteCanvasConfig。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:配置成功。NO
:配置失败。
setJsonParameter:error:
通过 JSON 配置 SDK 提供技术预览或特别定制功能。
- (void)setJsonParameter:(NSString * _Nullable)jsonParameter error:(AgoraRteError * _Nullable)error;
适用场景
当你需要设置私有参数或使用定制功能时,可以调用该方法。
调用时机
该方法需要在 setConfigs:error: 之前调用。
调用限制
无。
参数
- jsonParameter
- JSON 字符串形式的参数。
- error
- 状态或错误信息,详见 AgoraRteError。
setVideoMirrorMode:error:
设置视频的镜像模式。
- (void)setVideoMirrorMode:(AgoraRteVideoMirrorMode)mode error:(AgoraRteError* _Nullable)error;
调用时机
该方法需要在 setConfigs:error: 之前调用。
调用限制
无。
参数
- mode
- 镜像模式,详见 AgoraRteVideoMirrorMode。默认为 AgoraRteVideoMirrorModeAuto,即由 SDK 决定镜像模式。默认关闭远端用户的镜像模式。
- error
- 状态或错误信息,详见 AgoraRteError。
setVideoMirrorMode:error:
设置视频的渲染模式。
- (void)setVideoMirrorMode:(AgoraRteVideoMirrorMode)mode error:(AgoraRteError* _Nullable)error;
调用时机
该方法需要在 setConfigs:error: 之前调用。
调用限制
无。
参数
- mode
- 渲染模式,详见 AgoraRteVideoRenderMode。默认的渲染模式为 AgoraRteVideoRenderModeHidden,即视频尺寸等比缩放,优先保证视窗被填满。
- error
- 状态或错误信息,详见 AgoraRteError。
pause:
停止播放媒体资源。
- (BOOL)pause:(AgoraRteError * _Nullable)error;
当你成功打开 URL 流并调用 play: 播放后,如果你想停止播放,可以调用此方法。如果你需要暂停播放,请调用 pause:。
如果你调用 openWithUrl:startTime:cb: 打开 URL 流失败,需要先调用此方法,然后再调用 openWithUrl:startTime:cb: 重新打开 URL。
调用时机
该方法需要在 openWithUrl:startTime:cb: 之后调用。
调用限制
无。
相关回调
成功调用该方法后会触发 onStateChanged:newState:error: 回调,并报告播放器状态为 AgoraRtePlayerStateStopped。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:停止播放成功。NO
:停止播放失败。
abrFallbackLayer:
获取已设置的视频流回退选项。
- (AgoraRteAbrFallbackLayer)abrFallbackLayer:(AgoraRteError * _Nullable)error;
调用时机
该方法需要在 getConfigs:error: 之后调用。
调用限制
无。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
设置的视频流回退选项,详见 AgoraRteAbrFallbackLayer。
所属接口类abrSubscriptionLayer:
获取所订阅的视频流的质量层级。
- (AgoraRteAbrSubscriptionLayer)abrSubscriptionLayer:(AgoraRteError * _Nullable)error;
调用时机
该方法需要在 getConfigs:error: 之后调用。
调用限制
无。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
当前设置的视频质量层级,详见 AgoraRteAbrSubscriptionLayer。
所属接口类appId:
获取设置的 App ID。
- (NSString* _Nullable)appId:( AgoraRteError * _Nullable)error;
调用限制
无。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
- 方法调用成功,返回设置的 App ID。
- 方法调用失败,返回空字符串。
autoPlay:
获取自动播放设置。
- (BOOL)autoPlay:(AgoraRteError * _Nullable)error;
你可以调用该方法来得知当前播放器的自动播放设置。
调用时机
该方法需要在 getConfigs:error: 之后调用。
调用限制
无。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:获取成功。NO
:获取失败。
getConfigs:error:
获取 RTE 对象的配置信息。
- (BOOL)getConfigs:(AgoraRteConfig *_Nonnull)config error:(AgoraRteError * _Nullable)error;
调用时机
该方法需要在 initWithInitialConfig: 之后调用。
调用限制
无。
参数
- config
- RTE 对象的设置,详见 AgoraRteConfig。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:获取成功。NO
:获取失败。
getConfigs:error:
获取当前的播放器设置。
- (BOOL)getConfigs:(AgoraRtePlayerConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error;
调用时机
该方法需要在 initWithRte:initialConfig: 之后调用。
调用限制
无。
参数
- config
- 播放器设置的对象,详见 AgoraRtePlayerConfig。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:获取成功。NO
:获取失败。
getConfigs:error:
获取当前的播放器视频渲染配置。
- (BOOL)getConfigs:(AgoraRteCanvasConfig* _Nonnull)config error:(AgoraRteError* _Nullable)error;
调用时机
该方法需要在 initWithRte:initialConfig: 之后调用。
调用限制
无。
参数
- config
- Canvas 对象的设置,详见 AgoraRteCanvasConfig。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:获取成功。NO
:获取失败。
getFromBridge:
从 AgoraRtcEngineKit 中桥接出一个 RTE 对象。
+ (instancetype _Nonnull)getFromBridge:(AgoraRteError * _Nullable)error;
调用该方法创建的 RTE 对象,无需再通过 initMediaEngine:error: 进行初始化。如果你之前未创建并初始化 RTC 引擎,可以先调用 AgoraRte 创建一个 RTE 对象,然后再调用 initMediaEngine:error: 进行初始化。
调用时机
调用该方法前,请确保已调用 sharedEngineWithConfig:delegate: 初始化 RTC 引擎。
调用限制
无。
参数
- error
- 指向 AgoraRteError 对象的指针,用于接收状态及错误码。
返回值
一个 RTE 对象。
所属接口类jsonParameter:
获取已设置的 SDK JSON 配置信息。
- (NSString * _Nullable)jsonParameter:(AgoraRteError * _Nullable)error;
当你调用 setJsonParameter:error: 设置 JSON 配置信息后,你可以调用该方法获取已设置的配置信息。
调用时机
该方法需要在 getConfigs:error: 之后调用。
调用限制
无。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
- 方法调用成功,返回设置的 JSON 配置信息。
- 方法调用失败,返回空字符串。
videoMirrorMode:
获取当前设置的镜像模式。
- (AgoraRteVideoMirrorMode)videoMirrorMode:(AgoraRteError * _Nullable)error;
调用时机
该方法需要在 getConfigs:error: 之后调用。
调用限制
无。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
当前设置的镜像模式,详见 AgoraRteVideoMirrorMode。
所属接口类videoRenderMode:
获取当前设置的视频渲染模式。
- (AgoraRteVideoRenderMode)videoRenderMode:(AgoraRteError * _Nullable)error;
调用时机
该方法需要在 getConfigs:error: 之后调用。
调用限制
无。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
当前设置的视频渲染模式,详见 AgoraRteVideoRenderMode。
所属接口类getStats:
获取播放器当前播放的媒体资源的统计信息。
- (void)getStats:(void (^_Nonnull)(AgoraRtePlayerStats* _Nonnull stats, AgoraRteError* _Nullable err))cb ;
该方法用于获取播放器的统计信息,包括解码、渲染帧率、音视频码率等,并通过回调函数异步返回结果。
调用时机
该方法需要在 openWithUrl:startTime:cb: 之后调用。
调用限制
无。
参数
- cb
- 一个异步回调函数,用于通知获取播放器媒体资源统计信息的结果和错误信息。该函数包含以下参数:
stats
: 播放器当前播放的媒体资源的统计数据,详见 AgoraRtePlayerStats。err
: 获取错误信息,详见 AgoraRteError。
initMediaEngine:error:
初始化 RTE 引擎。
- (BOOL)initMediaEngine:(void (^ _Nullable)(AgoraRteError* _Nullable err) )cb error:(AgoraRteError * _Nullable)error;
此方法为异步方法,通过回调函数返回初始化结果。
调用时机
该方法需要在创建 RTE 对象并设置 App ID 后调用。
调用限制
无。
参数
- cb
- 一个异步回调函数,用于返回引擎初始化结果。你可以通过该回调的 err 参数得知引擎初始化的结果或错误码信息,详见 AgoraRteError。
- error
- 初始化过程中的错误信息,详见 AgoraRteError。在调用 initMediaEngine:error: 方法初始化时,如果过程遇到立即可检测的错误(如参数无效、资源不足等),SDK 会通过此参数同步返回错误信息。
返回值
YES
:成功加入队列。NO
:未成功加入队列。
unregisterObserver:error:
取消注册播放器事件观测器的对象。
- (BOOL)unregisterObserver:(AgoraRtePlayerObserver * _Nullable)observer error:(AgoraRteError * _Nullable)error;
调用 registerObserver:error: 注册播放器事件观测器后,如果你需要取消注册,请调用该方法。
调用时机
该方法需在 registerObserver:error: 之后调用。
调用限制
无。
参数
- observer
- 接口对象实例,详见 AgoraRtePlayerObserver。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
YES
:取消注册成功。NO
:取消注册失败。
onAudioVolumeIndication:volume:
主播音量提示回调。
- (void)onAudioVolumeIndication:(int32_t)volume;
触发时机
当主播的音量发生变化时,SDK 会触发该回调。
使用限制
无。
参数
- volume
- 主播当前的音量,取值范围为 [0,225]。
onEvent:
播放器事件回调。
- (void)onEvent:(AgoraRtePlayerEvent)event;
如果你需要监控播放器事件,需要先调用 registerObserver:error: 注册播放器观测器的对象。
触发时机
当播放器事件发生变化时,SDK 会触发该回调。
使用限制
无。
参数
- event
- 播放器事件,详见 AgoraRtePlayerEvent。
onMetadata:data:
已获取媒体附属信息回调。
- (void)onMetadata:(AgoraRtePlayerMetadataType)type data:(NSData * _Nonnull)data;
如果你需要获取媒体流的附属信息,需要先调用 registerObserver:error: 注册播放器观测器的对象。
触发时机
在 SDK 解析播放器所播放的媒体流的附属信息后,会触发该回调报告数据的类型及其具体内容。
使用限制
无。
参数
- type
- 附属信息类型,详见 AgoraRtePlayerMetadataType。
- data
- 解析的附属信息。
onPlayerInfoUpdated:
播放器及媒体流的相关信息发生变化回调。
- (void)onPlayerInfoUpdated:(AgoraRtePlayerInfo * _Nonnull)info;
如果你需要获取播放器、媒体流的相关信息,需要先调用 registerObserver:error: 注册播放器观测器的对象。你也可以直接通过 getInfo:error: 方法来获取。
触发时机
当播放器及媒体流的相关信息发生变化时,SDK 会触发该回调。
使用限制
无。
参数
- info
- 播放器及媒体流的相关信息,详见 AgoraRtePlayerInfo。
onResolutionChanged:
视频分辨率发生改变回调。
如果你需要监控播放器所播放视频流分辨率的变化,需要先调用 registerObserver:error: 注册播放器观测器的对象。
触发时机
当视频流的分辨率发生变化时,SDK 会触发该回调报告当前视频的宽高。
使用限制
无。
参数
- width
- 视频帧的宽度(px)。
- height
- 视频帧的高度(px)。
onStateChanged:newState:error:
播放器状态发生改变回调。
- (void)onStateChanged:(AgoraRtePlayerState)oldState newState:(AgoraRtePlayerState)newState error:(AgoraRteError * _Nullable)error;
如果你需要监控播放器状态的变化,需要先调用 registerObserver:error: 注册播放器观测器的对象。
触发时机
当播放器状态发生变化时,SDK 会触发此回调报告当前和变化之前的状态。
使用限制
无。
参数
- oldState
- 播放器变化前的状态,详见 AgoraRtePlayerState。
- newState
- error
- 状态或错误信息,详见 AgoraRteError。