最近更新时间:2023.09.20 11:22:25
首次发布时间:2022.07.01 14:15:42
提供以下方法进入与离开直播间、设置监听器,以及获取直播间页面等。
@interface BDLLiveEngine : NSObject
直播间配置信息。
@property (nonatomic, strong, readonly) BDLLiveRoomConfiguration *liveRoomConfiguration;
获取 BDLLiveEngine
实例。
+ (instancetype)sharedInstance;
返回值BDLLiveEngine
实例。
获取 SDK 版本号。
+ (NSString *)sdkVersion;
返回值
SDK 版本号。
设置直播间的监听器。
- (void)setActivityListener:(nullable id<BDLActivityListener>)listener;
参数
名称 | 类型 | 说明 |
---|---|---|
listener | 直播间的监听器。 |
设置自定义登录直播间代理。
- (BOOL)setLoginProvider:(nullable id<BDLLoginProvider>)loginProvider;
参数
名称 | 类型 | 说明 |
---|---|---|
loginProvider | id<BDLLoginProvider> | 自定义登录直播间代理。 |
返回值
YES
:设置成功。NO
:如果您未实现loginWithActivity:completion:
方法,返回 NO
,设置失败。进入直播间。
- (BOOL)joinLiveRoomWithActivity:(BDLActivity *)activity;
参数
名称 | 类型 | 说明 |
---|---|---|
activity | 直播间信息。 |
返回值
YES
:调用方法成功。NO
:参数无效,即 activityId
或 token
的值为空。进入直播间。进入直播间成功或失败后,SDK 会触发对应的回调。
- (BOOL)joinLiveRoomWithActivity:(BDLActivity *)activity; success:(void (^)(void))success failure:(void (^)(NSError *error))failure;
参数
名称 | 类型 | 说明 |
---|---|---|
activity | 直播间信息。 | |
success | block | 进入直播间成功后触发的回调,无返回值。 |
failure | block | 进入直播间失败后触发的回调,无返回值。
|
返回值
YES
:调用方法成功。NO
:参数无效,即 activityId
或 token
的值为空。获取直播间页面。
在 joinLiveRoomWithActivity:success:failure:
的 success
回调中调用 getLivePullViewController
。
- (nullable BDLLivePullViewController *)getLivePullViewController;
返回值
nil
:
joinLiveRoomWithActivity:success:failure:
。joinLiveRoomWithActivity:success:failure:
收到返回值 NO
。joinLiveRoomWithActivity:success:failure:
进入直播间失败。BDLLivePullViewController
实例。通过传入一个已经在播放的 basePlayerView
来获取直播间页面。basePlayerView
指用于提前展示直播间视频内容的浮窗播放器的基础播放器。将 basePlayerView
传入该方法后,可以避免视频内容的重新获取和重新播放,让用户在进入直播间后无缝继续观看之前的视频内容。
在 joinLiveRoomWithActivity:success:failure:
的 success
回调中调用 getLivePullViewControllerWithBasePlayerView:
。
- (nullable BDLLivePullViewController *)getLivePullViewControllerWithBasePlayerView:(nullable BDLBasePlayerView *)basePlayerView;
返回值
nil
:
joinLiveRoomWithActivity:success:failure:
。joinLiveRoomWithActivity:success:failure:
收到返回值 NO
。joinLiveRoomWithActivity:success:failure:
进入直播间失败。BDLLivePullViewController
实例。离开直播间。
- (void)leaveLiveRoom;
清除直播间的本地缓存。本地缓存包含:
+ (void)clearCache;
获取用户的唯一 ID,在用户成功进入直播间后调用。在反馈问题时,可以提供给企业直播技术支持,用于排查与解决问题。
(nullable NSString *)userUniqueId;
直播间信息。
@interface BDLActivity : NSObject
@property (nonatomic, strong) NSNumber *activityId;
直播间活动 ID。
@property (nonatomic, copy) NSString *token;
进入直播间所需的授权 Token。
@property (nonatomic, assign) BDLActivityAuthMode authMode;
直播间的鉴权模式,详见 BDLActivityAuthMode。
@property (nonatomic, copy, nullable) NSString *nickName;
如果 authMode 的值为 BDLActivityAuthModePublic
,即直播间的鉴权模式为公开,且该参数值非空,则该参数值会作为观众的昵称。
@property (nonatomic, assign) BOOL isPortrait;
是否为竖屏直播间。
YES
:竖屏直播间。NO
:横屏直播间。验证直播间信息是否有效。
- (BOOL)isValid;
返回值
YES
:有效。activityId
和 token
均非空值。NO
:无效。activityId
和 token
有一个为空值或二者皆为空值。自定义登录直播间代理。
@protocol BDLLoginProvider <NSObject>
自定义登录直播间,即允许观众通过您的自有账号系统登录直播间。
- (void)loginWithActivity:(BDLActivity *)activity completion:(void (^)(NSString * _Nullable token))completion;
参数
名称 | 类型 | 说明 |
---|---|---|
activity | 由 joinLiveRoomWithActivity: 方法传入的直播间信息。 | |
completion | block | 自定义登录直播间完成后触发的回调,无返回值,传入 |
取消自定义登录直播间。
@optional - (void)cancelLoginWithActivity:(BDLActivity *)activity;
参数
名称 | 类型 | 说明 |
---|---|---|
activity | 由 joinLiveRoomWithActivity: 方法传入的直播间信息。 |
直播间的监听器。
@protocol BDLActivityListener <NSObject>
直播间网络状态变化回调。
(void)activity:(BDLActivity *)activity networkStatusDidChange:(BDLNetworkStatus)networkStatus;
参数
名称 | 类型 | 说明 |
---|---|---|
activity | 由 joinLiveRoomWithActivity: 方法传入的直播间信息。 | |
networkStatus | 当前网络状态。 |
直播状态变化回调。
- (void)activity:(BDLActivity *)activity activityStatusDidChange:(BDLActivityStatus)activityStatus;
参数
名称 | 类型 | 说明 |
---|---|---|
activity | 由 joinLiveRoomWithActivity: 方法传入的直播间信息。 | |
activityStatus | 当前直播状态。 |
直播间的鉴权模式。
typedef NS_ENUM(NSInteger, BDLActivityAuthMode) { BDLActivityAuthModeUnknown = 0, BDLActivityAuthModePublic = 1, BDLActivityAuthModeCustom = 2, };
BDLActivityAuthModeUnknown(0)
:未知模式。BDLActivityAuthModePublic(1)
:公开模式。昵称由观众输入或者由 nickName
参数传入。BDLActivityAuthModeCustom(2)
:自定义模式。观众通过登录您的自有账号系统进入直播间。昵称从自有账号系统同步至直播间,无需观众输入。直播状态。
typedef NS_ENUM(NSInteger, BDLActivityStatus) { BDLActivityStatusUnknown = 0, BDLActivityStatusLive = 1, BDLActivityStatusPreview = 2, BDLActivityStatusReplay = 3, BDLActivityStatusEnd = 4, };
BDLActivityStatusUnknown(0)
:未知状态。BDLActivityStatusLive(1)
:直播中。BDLActivityStatusPreview(2)
:预告。BDLActivityStatusReplay(3)
:回放。BDLActivityStatusEnd(4)
:已结束。错误码。
typedef NS_ENUM(NSUInteger, BDLError) { BDLErrorUnknown = 0, BDLErrorGetActivityFailed = 1, BDLErrorPullDisallowed = 2, BDLErrorChangeTokenFailed = 3, };
BDLErrorUnknown(0)
:未知错误。BDLErrorGetActivityFailed(1)
:获取直播间信息失败。BDLErrorPullDisallowed(2)
:由于在控制台设置为仅支持 PC 端观看,因此移动端观看失败。BDLErrorChangeTokenFailed(3)
:变更进入直播间所需的授权 Token 失败。网络状态。
typedef NS_ENUM(NSInteger, BDLNetworkStatus) { BDLNetworkStatusUnknown = 0, BDLNetworkStatusNotReachable = 1, BDLNetworkStatusReachableViaWWAN = 2, BDLNetworkStatusReachableViaWiFi = 3, };
BDLNetworkStatusUnknown(0)
:未知状态。BDLNetworkStatusNotReachable(1)
:无网络。BDLNetworkStatusReachableViaWWAN(2)
:无线广域网(WWAN)。BDLNetworkStatusReachableViaWiFi(3)
:WiFi。