You need to enable JavaScript to run this app.
导航

接口说明

最近更新时间2023.11.20 21:00:23

首次发布时间2022.07.01 14:15:42

BDLLiveEngine

提供以下方法进入与离开直播间、设置监听器,以及获取直播间页面等。

@interface BDLLiveEngine : NSObject

成员变量

liveRoomConfiguration

直播间配置信息。

@property (nonatomic, strong, readonly) BDLLiveRoomConfiguration *liveRoomConfiguration;

成员函数

sharedInstance

获取 BDLLiveEngine 实例。

+ (instancetype)sharedInstance;

返回值
BDLLiveEngine 实例。

sdkVersion

获取 SDK 版本号。

+ (NSString *)sdkVersion;

返回值
SDK 版本号。

setActivityListener:

设置直播间的监听器。

- (void)setActivityListener:(nullable id<BDLActivityListener>)listener;

参数

名称

类型

说明

listener

id<BDLActivityListener>

直播间的监听器。

setLoginProvider:

设置自定义登录直播间代理。

- (BOOL)setLoginProvider:(nullable id<BDLLoginProvider>)loginProvider;

参数

名称

类型

说明

loginProvider

id<BDLLoginProvider>

自定义登录直播间代理。

返回值

  • YES:设置成功。
  • NO:如果您未实现loginWithActivity:completion: 方法,返回 NO,设置失败。

joinLiveRoomWithActivity:

进入直播间。

- (BOOL)joinLiveRoomWithActivity:(BDLActivity *)activity;

参数

名称

类型

说明

activity

BDLActivity

直播间信息。

返回值

  • YES:调用方法成功。
  • NO:参数无效,即 activityIdtoken 的值为空。

joinLiveRoomWithActivity:success:failure:

进入直播间。进入直播间成功或失败后,SDK 会触发对应的回调。

- (BOOL)joinLiveRoomWithActivity:(BDLActivity *)activity;
                         success:(void (^)(void))success
                         failure:(void (^)(NSError *error))failure;

参数

名称

类型

说明

activity

BDLActivity

直播间信息。

success

block

进入直播间成功后触发的回调,无返回值。

failure

block

进入直播间失败后触发的回调,无返回值。
参数:error,NSError 类型。error.code 的值为 BDLError 的枚举值,详见 BDLError
示例:

failure:^(NSError * _Nonnull error) {
    if ([error.domain isEqualToString:BDLErrorDomain]) {
        if (error.code == BDLErrorPullDisallowed)
        }
        else if ... {
        }
    }
    else {
    }
  }];

返回值

  • YES:调用方法成功。
  • NO:参数无效,即 activityIdtoken 的值为空。

updateActivity:success:failure:

更新直播间信息,即更新直播间的 tokenauthModenickName。更新直播间信息成功或失败后,SDK 会触发对应的回调。

说明

确保使用与调用 joinLiveRoomWithActivity: 时相同的 activityIdisPortrait,用于更新对应直播间的信息。

- (BOOL)updateActivity:(BDLActivity *)activity;
                         success:(void (^)(void))success
                         failure:(void (^)(NSError *error))failure;

参数

名称

类型

说明

activity

BDLActivity

直播间信息。

success

block

更新直播间信息成功后触发的回调,无返回值。

failure

block

更新直播间信息失败后触发的回调,无返回值。
参数:error,NSError 类型。error.code 的值为 BDLError 的枚举值,详见 BDLError
示例:

failure:^(NSError * _Nonnull error) {
    if ([error.domain isEqualToString:BDLErrorDomain]) {
        if (error.code == BDLErrorPullDisallowed)
        }
        else if ... {
        }
    }
    else {

    }
  }];

返回值

  • YES:调用方法成功。
  • NO:参数无效,即 activityIdisPortrait 与调用 joinLiveRoomWithActivity: 时使用的 activityIdisPortrait 不同、或者 activityIdtoken 的值为空。

getLivePullViewController

获取直播间页面。
joinLiveRoomWithActivity:success:failure:success 回调中调用 getLivePullViewController

- (nullable BDLLivePullViewController *)getLivePullViewController;

返回值

  • 以下三种情况,返回值为 nil
    • 未调用 joinLiveRoomWithActivity:success:failure:
    • 调用 joinLiveRoomWithActivity:success:failure: 收到返回值 NO
    • 调用 joinLiveRoomWithActivity:success:failure:进入直播间失败。
  • BDLLivePullViewController 实例。

getLivePullViewControllerWithBasePlayerView:

通过传入一个已经在播放的 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 实例。

leaveLiveRoom

离开直播间。

- (void)leaveLiveRoom;

clearCache

清除直播间的本地缓存。本地缓存包含:

  • 弹出风险提示框的记录。清除后,观众重进该直播间,风险提示框会重新弹出。
  • 在系统日历预约直播的记录。清除后,预约按钮会恢复为立即预约,但不会清除系统日历中的日程。
  • 点播视频断点续播的记录。清除后,观众重进该直播间,点播视频会从头播放。
+ (void)clearCache;

userUniqueId

获取用户的唯一 ID,在用户成功进入直播间后调用。在反馈问题时,可以提供给企业直播技术支持,用于排查与解决问题。

(nullable NSString *)userUniqueId;

BDLActivity

直播间信息。

@interface BDLActivity : NSObject

成员变量

activityId

@property (nonatomic, strong) NSNumber *activityId;

直播间活动 ID。

token

@property (nonatomic, copy) NSString *token;

进入直播间所需的授权 Token。

authMode

@property (nonatomic, assign) BDLActivityAuthMode authMode;

直播间的鉴权模式,详见 BDLActivityAuthMode

nickName

@property (nonatomic, copy, nullable) NSString *nickName;

如果 authMode 的值为 BDLActivityAuthModePublic,即直播间的鉴权模式为公开,且该参数值非空,则该参数值会作为观众的昵称。

isPortrait

@property (nonatomic, assign) BOOL isPortrait;

是否为竖屏直播间。

  • YES:竖屏直播间。
  • NO:横屏直播间。

成员函数

isValid

验证直播间信息是否有效。

- (BOOL)isValid;

返回值

  • YES:有效。activityIdtoken 均非空值。
  • NO:无效。activityIdtoken 有一个为空值或二者皆为空值。

BDLLoginProvider

自定义登录直播间代理。

说明

如果 authMode 的值为 BDLActivityAuthModePublic,即直播间的鉴权模式为公开,且 nickName 的值非空,则不会触发该代理的任何方法。

@protocol BDLLoginProvider <NSObject>

成员函数

loginWithActivity:completion:

自定义登录直播间,即允许观众通过您的自有账号系统登录直播间。

- (void)loginWithActivity:(BDLActivity *)activity completion:(void (^)(NSString * _Nullable token))completion;

参数

名称

类型

说明

activity

BDLActivity

joinLiveRoomWithActivity: 方法传入的直播间信息。

completion

block

自定义登录直播间完成后触发的回调,无返回值,传入 NSString 类型的 token 参数用于验证登录用户的身份。

cancelLoginWithActivity

取消自定义登录直播间。

@optional
- (void)cancelLoginWithActivity:(BDLActivity *)activity;

参数

名称

类型

说明

activity

BDLActivity

joinLiveRoomWithActivity: 方法传入的直播间信息。

BDLActivityListener

直播间的监听器。

@protocol BDLActivityListener <NSObject>

成员函数

activity:networkStatusDidChange:

直播间网络状态变化回调。

(void)activity:(BDLActivity *)activity networkStatusDidChange:(BDLNetworkStatus)networkStatus;

参数

名称

类型

说明

activity

BDLActivity

joinLiveRoomWithActivity: 方法传入的直播间信息。

networkStatus

BDLNetworkStatus

当前网络状态。

activity:activityStatusDidChange:

直播状态变化回调。

- (void)activity:(BDLActivity *)activity activityStatusDidChange:(BDLActivityStatus)activityStatus;

参数

名称

类型

说明

activity

BDLActivity

joinLiveRoomWithActivity: 方法传入的直播间信息。

activityStatus

BDLActivityStatus

当前直播状态。

数据类型

BDLActivityAuthMode

直播间的鉴权模式。

typedef NS_ENUM(NSInteger, BDLActivityAuthMode) {
    BDLActivityAuthModeUnknown = 0,
    BDLActivityAuthModePublic = 1, 
    BDLActivityAuthModeCustom = 2, 
};
  • BDLActivityAuthModeUnknown(0):未知模式。
  • BDLActivityAuthModePublic(1):公开模式。昵称由观众输入或者由 nickName 参数传入。
  • BDLActivityAuthModeCustom(2):自定义模式。观众通过登录您的自有账号系统进入直播间。昵称从自有账号系统同步至直播间,无需观众输入。

BDLActivityStatus

直播状态。

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):已结束。

BDLError

错误码。

typedef NS_ENUM(NSUInteger, BDLError) {
    BDLErrorUnknown = 0,            
    BDLErrorGetActivityFailed = 1,     
    BDLErrorPullDisallowed = 2,         
    BDLErrorChangeTokenFailed = 3,      
};
  • BDLErrorUnknown(0):未知错误。
  • BDLErrorGetActivityFailed(1):获取直播间信息失败。
  • BDLErrorPullDisallowed(2):由于在控制台设置为仅支持 PC 端观看,因此移动端观看失败。
  • BDLErrorChangeTokenFailed(3):变更进入直播间所需的授权 Token 失败。

BDLNetworkStatus

网络状态。

typedef NS_ENUM(NSInteger, BDLNetworkStatus) {
    BDLNetworkStatusUnknown = 0,          
    BDLNetworkStatusNotReachable = 1,     
    BDLNetworkStatusReachableViaWWAN = 2, 
    BDLNetworkStatusReachableViaWiFi = 3,
};
  • BDLNetworkStatusUnknown(0):未知状态。
  • BDLNetworkStatusNotReachable(1):无网络。
  • BDLNetworkStatusReachableViaWWAN(2):无线广域网(WWAN)。
  • BDLNetworkStatusReachableViaWiFi(3):WiFi。