URL 拉流播放
addView:config:error:
添加一个渲染视图。
- (BOOL)addView:(AgoraRteView * _Nonnull)view config:(AgoraRteViewConfig* _Nullable)config error:(AgoraRteError* _Nullable)error;
你可以调用该方法将视图添加到视频渲染器中,以显示视频内容。
适用场景
当你需要使用播放器播放视频时,可以调用此方法将视图添加到视频渲染器中,以显示视频内容。
调用时机
你必须在调用 setCanvas:error: 之前调用此方法。
参数
- view
- 视图对象的指针。
- iOS:一个
UIView对象。 - macOS:一个
NSView对象。
- iOS:一个
- config
- 视图对象的配置。当前请传入 nil。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
- YES:添加视图成功。
- NO:添加视图失败。
initWithRte:initialConfig:
构造一个 AgoraRteCanvas 对象。
- (instancetype _Nonnull)initWithRte:(AgoraRte* _Nonnull)rte initialConfig:(AgoraRteCanvasInitialConfig * _Nullable)config;
参数
- rte
- config
- 用于初始化的配置对象。你可以传入 nil。
code
获取 API 调用返回的错误码。
- (AgoraRteErrorCode)code;
当 API 调用失败时,你可以调用该方法获取错误码。
调用时机
当 API 调用失败时,你可以调用该方法获取错误码。
返回值
方法调用成功时,返回错误码,详见 AgoraRteErrorCode。
所属接口类destroy:
销毁 RTE 对象。
- (BOOL)destroy:(AgoraRteError * _Nullable)error;
该方法会释放 RTE 对象使用的所有资源。
参数
- 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
- 错误信息对象,可能返回以下错误码,详见 AgoraRteErrorCode:
AgoraRteOk:调用成功。
返回值
- 方法调用成功时,返回你已设置的声网 App ID。
- 方法调用失败时,返回空字符串。
autoPlay:
获取媒体播放器的自动播放设置。
- (BOOL)autoPlay:(AgoraRteError * _Nullable)error;
调用时机
必须在调用 getConfigs:error: 方法之后调用。
参数
- error
- 状态或错误信息。详见 AgoraRteError。
返回值
- YES:获取成功。
- NO:获取失败。
getConfigs:error:
获取当前播放器的视频渲染配置。
- (BOOL)getConfigs:(AgoraRteCanvasConfig* _Nonnull)config error:(AgoraRteError* _Nullable)error;
调用时机
你需要在调用 initWithRte:initialConfig: 方法之后调用该方法。
参数
- config
- 视频画布配置,详见 AgoraRteCanvasConfig。
- 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:
获取 RTE 对象的配置信息。
- (BOOL)getConfigs:(AgoraRteConfig *_Nonnull)config error:(AgoraRteError * _Nullable)error;
调用时机
你必须在调用 initWithInitialConfig: 之后调用该方法。
参数
- config
- RTE 对象的配置信息。详见 AgoraRteConfig。
- 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 对象,详见 AgoraRte。
getInfo:error:
获取播放器播放和媒体流相关的信息。
- (BOOL)getInfo:(AgoraRtePlayerInfo * _Nonnull)info error:(AgoraRteError * _Nullable)error;
你可以使用该方法获取播放器和媒体流相关的信息,例如音频采样率和视频帧尺寸。
参数
- info
- 播放器和媒体流相关的信息。详见 AgoraRtePlayerInfo。
- error
- 状态或错误信息。详见 AgoraRteError。
返回值
- YES:成功获取信息。
- NO:获取信息失败。
jsonParameter:
获取当前配置的 RTE 私有参数。
- (NSString * _Nullable)jsonParameter:(AgoraRteError * _Nullable)error;
参数
- error
- 状态或错误信息。详见 AgoraRteError。
AgoraRteOk:调用成功。
返回值
- 方法调用成功时,返回已设置的 JSON 格式参数集。
- 方法调用失败时,返回空字符串。
loopCount:
获取媒体文件的循环次数参数。
- (int32_t)loopCount:(AgoraRteError * _Nullable)error;
参数
- error
- 输出参数,用于指示错误信息,详见 AgoraRteError。
返回值
方法调用成功时,返回媒体文件的循环次数。
所属接口类videoMirrorMode:
获取当前设置的镜像模式。
- (AgoraRteVideoMirrorMode)videoMirrorMode:(AgoraRteError * _Nullable)error;
调用时机
你必须在调用 getConfigs:error: 之后调用此方法。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
当前设置的镜像模式,详见 AgoraRteVideoMirrorMode。
所属接口类playbackSpeed:
获取播放速度参数。
- (int32_t)playbackSpeed:(AgoraRteError * _Nullable)error;
参数
- error
- 输出参数,用于指示错误信息,详见 AgoraRteError。
返回值
方法调用成功时,返回播放速度的值。
所属接口类playoutVolume:
获取媒体播放器的播放音量。
- (int32_t)playoutVolume:(AgoraRteError * _Nullable)error;
参数
- error
- 输出参数,用于返回错误信息,详见 AgoraRteError。
返回值
方法调用成功,返回媒体播放器的播放音量。
所属接口类getPosition:
获取当前播放位置。
- (uint64_t)getPosition:(AgoraRteError * _Nullable)error;
该方法用于获取当前播放的时间位置,单位为毫秒。
参数
- error
- 输出参数,用于指示错误信息。可能的返回值包括:
AgoraRteOk:调用成功。AgoraRteErrorInvalidOperation:- 对应的内部 AgoraRtePlayer 对象已被销毁或无效。
- 打开的 URL 是 RTE URL,不支持调用 getPosition:。详见 AgoraRteError。
返回值
方法调用成功时,返回当前播放位置,单位为毫秒。
所属接口类videoRenderMode:
获取当前设置的视频渲染模式。
- (AgoraRteVideoRenderMode)videoRenderMode:(AgoraRteError * _Nullable)error;
调用时机
你需要在调用 getConfigs:error: 之后调用此方法。
参数
- error
- 状态或错误信息。详见 AgoraRteError。
返回值
当前设置的视频渲染模式。详见 AgoraRteVideoRenderMode。
所属接口类getStats:
获取播放器当前播放媒体资源的统计信息。
- (void)getStats:(void (^_Nonnull)(AgoraRtePlayerStats* _Nonnull stats, AgoraRteError* _Nullable err))cb;
该方法用于获取播放器的统计信息,并通过回调函数异步返回结果。统计信息包括解码和渲染帧率、音视频码率等。
参数
- cb
- 一个异步回调函数,用于通知你播放器媒体资源统计信息的获取结果以及任何错误信息。该函数包含以下参数:
stats:播放器当前播放媒体资源的统计信息,详见 AgoraRtePlayerStats。err:错误信息,详见 AgoraRteError。
initMediaEngine:error:
初始化 RTE 引擎。
- (BOOL)initMediaEngine:(void (^ _Nullable)(AgoraRteError* _Nullable err) )cb error:(AgoraRteError * _Nullable)error;
该方法为异步方法,通过回调函数返回初始化结果。你需要在创建 RTE 对象并设置 App ID 后调用该方法。
调用时机
你需要在创建 RTE 对象并设置 App ID 后调用该方法。
参数
- cb
- 用于返回引擎初始化结果的异步回调函数。你可以通过该回调的
err参数判断引擎初始化的结果或错误码。详见 AgoraRteError。 - error
- 初始化过程中发生的错误信息。当调用 initMediaEngine:error: 方法进行初始化时,如果发生可立即检测的错误(如参数无效或资源不足),SDK 会通过该参数同步返回错误信息。详见 AgoraRteError。
返回值
- YES:异步操作成功加入队列。
- NO:异步操作未能加入队列。
message
获取详细错误信息。
- (NSString * _Nullable)message;
调用时机
当 API 调用失败时,你可以调用此方法获取错误信息,以帮助排查问题。
返回值
- 方法调用成功时,返回错误信息字符串。
- 方法调用失败时,返回空字符串。
muteAudio:error:
开始或停止接收音频流。
- (BOOL)muteAudio:(BOOL)mute error:(AgoraRteError * _Nullable)error;
调用时机
你必须在调用 openWithUrl:startTime:cb: 之后调用此方法。
相关回调
调用该方法成功后,会触发 onPlayerInfoUpdated: 回调以上报最新的播放器和媒体流信息。
参数
- mute
- 是否接收音频流:
- YES:不接收音频流。
- NO:接收音频流。
- error
- 输出参数,状态或错误信息,详见 AgoraRteError。
返回值
- YES:操作成功。
- NO:操作失败。
muteVideo:error:
开始或停止接收远端视频流。
- (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: 预加载资源。
rte:// 开头的 URL、CDN 推流 URL 和本地媒体文件。调用时机
该方法必须在调用 initWithRte:initialConfig: 之后调用。
相关回调
成功调用该方法后,SDK 会触发 onStateChanged:newState:error: 回调报告播放器连接状态为 AgoraRtePlayerStateOpening,表示正在打开 URL。打开成功后,播放器连接状态会报告为 AgoraRtePlayerStateOpenCompleted。如果资源打开失败,会收到 onStateChanged:newState:error: 回调,报告连接状态为 AgoraRtePlayerStateFailed。此时需先调用 pause:,再调用 openWithUrl:startTime:cb: 重新打开 URL 资源。如果已关闭自动播放,可在资源打开后调用 play: 开始播放。
参数
- url
- 要打开的 URL,可以是 CDN 推流 URL、本地媒体文件,或以
rte://为前缀的 URL。关于 RTE URL 各字段的详细信息,详见观众端 URL 拉流。 - startTime
- 起始播放位置,单位为毫秒。
- cb
- 异步通知打开 URL 资源结果的回调。你可以通过该回调的
err参数得知操作的结果或错误码信息,详见 AgoraRteError。
pause:
暂停播放。
- (BOOL)pause:(AgoraRteError * _Nullable)error;
调用时机
你必须在调用 play: 之后调用该方法。
参数
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
- YES:暂停播放成功。
- NO:暂停播放失败。
play:
播放一个以 rte:// 开头的 URL 资源。
- (BOOL)play:(AgoraRteError * _Nullable)error;
如果你已关闭自动播放,在使用 openWithUrl:startTime:cb: 成功打开直播流后,可以调用此方法开始播放。
调用时机
仅在收到 onStateChanged:newState:error: 回调并报告状态为 AgoraRtePlayerStateOpenCompleted 后调用此方法。
参数
- error
- 连接状态或错误信息,详见 AgoraRteError。
返回值
- YES:播放成功。
- NO:播放失败。
initWithRte:initialConfig:
构造一个播放器对象。
- (instancetype _Nonnull)initWithRte:(AgoraRte * _Nonnull)rte initialConfig:(AgoraRtePlayerInitialConfig * _Nullable)config;
调用时机
你必须在调用 initMediaEngine:error: 之后调用此方法。
参数
- rte
- config
- 播放器对象的初始化设置。你可以传入 nil。
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。 - error
- 状态或错误信息,详见 AgoraRteError。
返回值
- YES:预加载成功。
- NO:预加载失败。
registerObserver:error:
注册一个播放器观察者对象。
- (BOOL)registerObserver:(AgoraRtePlayerObserver *_Nonnull)observer error:(AgoraRteError * _Nullable)error;
在调用此方法之前,你需要实现一个继承自 AgoraRtePlayerObserver 的接口类。你必须在调用 initWithRte:initialConfig: 之后再调用此方法。
参数
- observer
- 接口对象实例,详见 AgoraRtePlayerObserver。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
- YES:注册成功。
- NO:注册失败。
removeView:config:error:
移除一个渲染视图。
- (BOOL)removeView:(AgoraRteView * _Nonnull)view config:(AgoraRteViewConfig* _Nullable)config error:(AgoraRteError* _Nullable)error;
调用时机
必须在调用 addView:config:error: 方法之后调用。
参数
- view
- 要移除的视图对象,详见
AgoraRteView。 - config
- 视图对象的配置。目前传入 nil。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
- YES:视图移除成功。
- NO:视图移除失败。
initWithInitialConfig:
构造一个 RTE 对象。
- (instancetype _Nonnull)initWithInitialConfig:(AgoraRteInitialConfig * _Nullable)config;
RTE 对象用于组织和管理 RTE 的内部资源。你必须在调用 initMediaEngine:error: 方法之前调用此方法。
调用时机
你必须在调用 initMediaEngine:error: 方法之前调用此方法。
参数
- config
- 初始化设置。你可以传入 nil。
返回值
- 方法调用成功,返回
RTE对象。 - 方法调用失败,返回 nil。
seek:error:
跳转到指定的播放位置。
- (BOOL)seek:(uint64_t)newTime error:(AgoraRteError * _Nullable)error;
参数
- newTime
- 要跳转到的播放位置。
- error
- 输出参数,用于在跳转操作失败时返回错误信息。详见 AgoraRteError。
返回值
- YES:跳转成功。
- NO:跳转失败。
setAbrFallbackLayer:error:
设置已订阅远端视频流的分层推流回退选项。
- (void)setAbrFallbackLayer:(AgoraRteAbrFallbackLayer)layer error:(AgoraRteError * _Nullable)error;
在网络条件较差时,实时音视频通信的质量可能会下降。调用该方法后,SDK 会在网络变差时将远端视频流的分辨率回退到指定的视频质量层级。每个视频质量层级对应特定的分辨率和码率。SDK 会持续监测网络质量,在网络改善时恢复到原始订阅的视频质量层级。 默认情况下,调用该方法后只能选择回退到 AgoraRteAbrFallbackLow 或 AgoraRteAbrFallbackAudioOnly。如果你对视频体验有更高要求,可以联系技术支持开启 ABR 功能。开启后,可以回退到所有视频质量层级,并自定义每个层级的分辨率。
AgoraRteAbrFallbackLow 或 AgoraRteAbrFallbackAudioOnly。适用场景
一般场景下,可调用该方法并将回退质量层设置为 kRteAbrFallbackLow 或 kRteAbrFallbackAudioOnly。当网络较差时,SDK 会回退为视频小流或仅接收音频流。 如果对回退视频流的分辨率有更高要求,可联系技术支持开启 ABR 功能。开启后,可自定义每一层的分辨率。SDK 会以你指定的最低质量层的分辨率为下限,并根据网络状况在该范围内动态调整分辨率。
调用时机
必须在调用 setConfigs:error: 之前调用该方法。
参数
- layer
- 回退的视频质量层级。可选值详见 AgoraRteAbrFallbackLayer。当自定义
AgoraRteAbrFallbackLayer1到AgoraRteAbrFallbackLayer6的分辨率时,可参考下表或根据实际需求定义:信息自定义分辨率时,必须按从高到低的分辨率顺序排列视频质量层级。如果两个层级的分辨率相同,则按帧率从高到低排序。
自定义分辨率时,必须按从高到低的分辨率顺序排列视频质量层级。如果两个层级的分辨率相同,则按帧率从高到低排序。详见视频质量层级 分辨率 AgoraRteAbrSubscriptionLayer12160p (4K) AgoraRteAbrSubscriptionLayer21440p (2K) AgoraRteAbrSubscriptionLayer31080p (HD) AgoraRteAbrSubscriptionLayer4720p (HD) AgoraRteAbrSubscriptionLayer5540p (SD) AgoraRteAbrSubscriptionLayer6480p (SD) AgoraRteAbrFallbackLayer。 - error
- 状态或错误信息。详见 AgoraRteError。
setAbrSubscriptionLayer:error:
设置订阅端媒体流的视频质量层级。
- (void)setAbrSubscriptionLayer:(AgoraRteAbrSubscriptionLayer)layer error:(AgoraRteError * _Nullable)error;
你可以根据实际的网络状况,在多质量层级视频流中切换不同的视频质量层级,每个层级对应不同的分辨率。默认情况下,调用该方法后,观众只能在高、低两个视频流之间切换,即 AgoraRteAbrSubscriptionHigh 和 AgoraRteAbrSubscriptionLow。如果你需要更高级的分辨率切换功能,可以联系技术支持开启 ABR(自适应码率)功能。开启后,你可以自定义每个视频质量层级的分辨率,观众可以根据需要在所有可用的视频质量层级之间切换。
AgoraRteAbrSubscriptionHigh 或 AgoraRteAbrSubscriptionLow。适用场景
在网络环境不稳定的场景中,订阅端可根据实际网络状况选择合适的视频质量层级,以保障流畅的观看体验。
调用时机
你必须在调用 setConfigs:error: 之前调用该方法。
参数
- layer
- 要订阅的视频质量层级。你可以自定义
AgoraRteAbrSubscriptionLayer1到AgoraRteAbrSubscriptionLayer6的分辨率,参考如下建议,或根据实际需求定义: 注意:自定义分辨率时,请确保视频质量层级按分辨率从高到低排序;如果分辨率相同,则按帧率从高到低排序。
详见视频质量层级 分辨率 AgoraRteAbrSubscriptionLayer12160p (4K) AgoraRteAbrSubscriptionLayer21440p (2K) AgoraRteAbrSubscriptionLayer31080p (HD) AgoraRteAbrSubscriptionLayer4720p (HD) AgoraRteAbrSubscriptionLayer5540p (SD) AgoraRteAbrSubscriptionLayer6480p (SD) AgoraRteAbrSubscriptionLayer。 - 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
- 用于渲染视频帧的视图窗口。详见 AgoraRteCanvas。
- error
- 状态或错误信息。详见 AgoraRteError。
返回值
- YES:设置成功。
- NO:设置失败。你可以通过
error参数返回的错误码获取详细信息。
setConfigs:error:
设置播放器的视频渲染配置。
- (BOOL)setConfigs:(AgoraRteCanvasConfig* _Nonnull)config error:(AgoraRteError* _Nullable)error;
调用时机
你必须在调用 openWithUrl:startTime:cb: 之前调用此方法。
参数
- config
- Canvas 对象的设置,详见 AgoraRteCanvasConfig。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
- YES:配置成功。
- NO:配置失败。
setConfigs:error:
配置播放器参数。
- (BOOL)setConfigs:(AgoraRtePlayerConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error;
你可以调用此方法配置播放器,例如启用自动播放、订阅不同分辨率和码率的视频流。
参数
- config
- 播放器配置对象。详见 AgoraRtePlayerConfig。
- error
- 状态或错误信息。详见 AgoraRteError。
返回值
- YES:配置成功。
- NO:配置失败。
setConfigs:error:
配置 RTE 对象的信息。
- (BOOL)setConfigs:(AgoraRteConfig * _Nonnull)config error:(AgoraRteError * _Nullable)error;
参数
- config
- RTE 对象的设置信息,详见 AgoraRteConfig。
- error
- 状态或错误信息,详见 AgoraRteError。
返回值
- YES:配置成功。
- NO:配置失败。
setJsonParameter:error:
通过 JSON 配置 SDK 提供的技术预览或定制功能。
- (void)setJsonParameter:(NSString * _Nullable)jsonParameter error:(AgoraRteError * _Nullable)error;
适用场景
当你需要设置私有参数或使用定制化功能时,可以调用此方法。
参数
- jsonParameter
- 以 JSON 字符串形式传入的参数。
- error
- 状态或错误信息,详见 AgoraRteError。
setLoopCount:error:
设置播放媒体文件的循环次数。
- (void)setLoopCount:(int32_t)count error:(AgoraRteError * _Nullable)error;
参数
- count
- 媒体文件的播放次数:
1:播放一次。2:播放两次。-1:无限循环播放,直到调用 pause:。
- error
- 输出参数,表示状态或错误信息,详见 AgoraRteError。
AgoraRteOk:调用成功。AgoraRteErrorInvalidArgument:count参数设置为无效值。
setVideoMirrorMode:error:
设置视频镜像模式。
- (void)setVideoMirrorMode:(AgoraRteVideoMirrorMode)mode error:(AgoraRteError* _Nullable)error;
调用时机
你必须在调用 setConfigs:error: 之前调用此方法。
参数
- mode
- 镜像模式,详见 AgoraRteVideoMirrorMode。默认值为
AgoraRteVideoMirrorModeAuto,表示由 SDK 自动决定镜像模式。默认情况下,远端用户的视频镜像模式为关闭状态。 - error
- 状态或错误信息,详见 AgoraRteError。
setPlaybackSpeed:error:
设置播放速度参数。
- (void)setPlaybackSpeed:(int32_t)speed error:(AgoraRteError * _Nullable)error;
参数
- speed
- 播放速度,取值范围为 [50, 400]。
- error
- 用于返回错误信息的输出参数。详见 AgoraRteError。
setPlayoutVolume:error:
设置播放音量参数。
- (void)setPlayoutVolume:(int32_t)volume error:(AgoraRteError * _Nullable)error;
你可以使用该方法设置播放音量。有效范围为 [0, 400]。
参数
- volume
- 要设置的播放音量。有效范围为 [0, 400]。
- error
- 输出参数,返回错误信息。详见 AgoraRteError。
AgoraRteOk:设置成功。AgoraRteErrorInvalidArgument:音量参数无效。
setVideoRenderMode:error:
设置视频渲染模式。
- (void)setVideoRenderMode:(AgoraRteVideoRenderMode)mode error:(AgoraRteError * _Nullable)error;
参数
- mode
- 要设置的视频渲染模式,详见 AgoraRteVideoRenderMode。默认值为
AgoraRteVideoRenderModeHidden。 - error
- 状态或错误信息。
AgoraRteOk:成功。AgoraRteErrorInvalidArgument:mode参数设置为非法值。详见 AgoraRteError。
stop:
停止播放。
- (BOOL)stop:(AgoraRteError * _Nullable)error;
参数
- error
- 状态或错误信息,详见 AgoraRteError。可能返回以下 AgoraRteErrorCode:
AgoraRteOk:成功。AgoraRteErrorInvalidOperation:对应的内部 AgoraRtePlayer 对象已被销毁或无效。
返回值
- YES:停止成功。
- NO:停止失败。你可以通过
error参数查看具体错误信息。
switchWithUrl:syncPts:cb:
在播放过程中切换到新的 URL。
- (void)switchWithUrl:(NSString * _Nonnull)url syncPts:(BOOL)syncPts cb:(void (^_Nullable)(AgoraRteError* _Nullable err))cb;
AgoraRtePlayerStateOpenCompleted 后调用此方法。参数
- url
- 要切换到的目标 URL。
- syncPts
- 是否在切换后同步播放位置(单位为毫秒):
- YES:同步播放位置。
- NO:(默认)不同步播放位置。
- cb
- 异步通知切换操作结果的回调。你可以通过该回调的
err参数得知操作的结果或错误码信息,详见 AgoraRteError。
unregisterObserver:error:
取消注册媒体播放器事件观察者对象。
- (BOOL)unregisterObserver:(AgoraRtePlayerObserver * _Nullable)observer error:(AgoraRteError * _Nullable)error;
调用 registerObserver:error: 注册媒体播放器事件观察者对象后,如需取消注册该观察者对象,可以调用此方法。
调用时机
该方法必须在调用 registerObserver:error: 之后调用。
参数
- observer
- 媒体播放器事件观察者对象。详见 AgoraRtePlayerObserver。
- error
- 状态或错误信息。详见 AgoraRteError。
返回值
- YES:取消注册成功。
- NO:取消注册失败。
onAudioVolumeIndication:
播放器音量提示回调。
- (void)onAudioVolumeIndication:(int32_t)volume;
触发时机
当播放器音量发生变化时,SDK 会触发该回调。
参数
- volume
- 播放器当前的音量,取值范围为 [0,225]。
onEvent:
播放器事件回调。
- (void)onEvent:(AgoraRtePlayerEvent)event;
如果你需要监听播放器事件,必须先调用 registerObserver:error: 方法注册播放器观察者对象。
触发时机
该回调在播放器事件发生变化时被触发。
参数
- 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。
onPositionChanged:utcTime:
onPositionChanged:utcTime: 回调。报告媒体资源的当前播放进度。
- (void)onPositionChanged:(uint64_t)currentTime utcTime:(uint64_t)utcTime;
触发时机
该回调在媒体资源播放过程中每秒触发一次。
参数
- currentTime
- 当前播放进度,单位为毫秒。
- utcTime
- 当前的 NTP(网络时间协议)时间,单位为毫秒。
onResolutionChanged:height:
视频分辨率变化的回调。
- (void)onResolutionChanged:(int)width height:(int)height;
如果你需要监控播放器正在播放的视频流的分辨率变化,必须先调用 registerObserver:error: 方法注册播放器观察者对象。
触发时机
该回调在视频流的分辨率发生变化时被触发,报告当前视频的宽度和高度。
参数
- width
- 视频帧的宽度(像素)。
- height
- 视频帧的高度(像素)。
onStateChanged:newState:error:
播放器状态发生变化回调。
- (void)onStateChanged:(AgoraRtePlayerState)oldState newState:(AgoraRtePlayerState)newState error:(AgoraRteError * _Nullable)error;
如果你需要监听播放器状态的变化,必须先调用 registerObserver:error: 方法注册播放器观察者对象。
触发时机
该回调在播放器状态发生变化时被触发,用于报告当前状态和之前的状态。
参数
- oldState
- 变更前的播放器状态,详见 AgoraRtePlayerState。
- newState
- error
- 状态或错误信息,详见 AgoraRteError。