You need to enable JavaScript to run this app.
文档中心
企业直播

企业直播

复制全文
下载 pdf
1.42.0 及以前的版本
接口说明
复制全文
下载 pdf
接口说明

本文适用于 1.42.0 及以前的版本。

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 的值为空。

注意

该方法自 1.40.0 版本开始已废弃,请使用 joinLiveRoomWithActivity:success:failure: 方法替代之。

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:

更新直播间信息,即更新直播间的 tokenauthMode。更新直播间信息成功或失败后,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

清除观众当前设备上 SDK 的所有本地缓存。本地缓存包含:

  • 弹出风险提示框的记录。清除后,观众重进直播间,风险提示框会重新弹出。
  • 鉴权模式为公开时,在系统日历预约直播的记录。清除后,预约按钮会恢复为立即预约,但不会清除系统日历中的日程。
  • 点播视频断点续播的记录。清除后,观众重进直播间,点播视频会从头播放。
+ (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,即直播间的鉴权模式为公开,且该参数值非空,则该参数值会作为观众的昵称。

注意

该属性自 1.40.0 版本开始不再支持使用。您可以使用 BDLUserInfoConfigurationsetNickname:complete: 方法的 nickname 参数替代之。

isPortrait

@property (nonatomic, assign) BOOL isPortrait;

是否为竖屏直播间。

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

成员函数

isValid

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

- (BOOL)isValid;

返回值

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

BDLLoginProvider

自定义登录直播间代理。

说明

如果 authMode 的值为 BDLActivityAuthModePublic,即直播间的鉴权模式为公开,且 BDLUserInfoConfigurationsetNickname:complete: 方法的 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

当前直播状态。

BDLCustomIMService

收到自定义的 IM(即时消息)信令。
您可以通过观播 SDK 的信道在进入直播间期间触发您的界面逻辑,例如即时动画、自行实现的抽奖等。

成员函数

onReceiveIMString:

自定义的 IM 信令收到回调。

- (void)onReceiveIMString:(NSString *)string;

参数

名称

类型

说明

string

NSString

通过 SendCustomSystemMessageAPI 接口发送的自定义的 IM 信令。

onConnected

IM 建立连接成功回调。

- (void)onConnected;

onConnectFailed

IM 建立连接失败回调。

- (void)onConnectFailed;

BDLCalendarUtils

日历工具类。

@interface BDLCalendarUtils : NSObject

addCalendarEvent:alarms:startDate:endDate:completion:

创建系统日历日程。

+ (void)addCalendarEvent:(NSString *)eventTitle 
                  alarms:(NSArray<EKAlarm *> *)alarms
               startDate:(NSDate *)startDate
                 endDate:(NSDate *)endDate
              completion:(void(^)(BOOL success, NSError *error))completion;

参数

名称

类型

说明

eventTitle

NSString

日程的标题,即直播名称。

alarms

NSArray<EKAlarm *>

提前直播开始时间多久提醒直播即将开始。详见 EKAlarm

说明

支持设置多个提醒时间。

startDate

NSDate

直播开始时间。

endDate

NSDate

直播结束时间。

completion

void(^)(BOOL success, NSError *error)

系统日历日程创建完成后触发的回调。
传入参数:

  • success:系统日历日程是否创建成功。
    • YES:创建成功。
    • NO:创建失败。
  • error:错误信息。详见 NSError

数据类型

BDLActivityAuthMode

直播间的鉴权模式。

typedef NS_ENUM(NSInteger, BDLActivityAuthMode) {
    BDLActivityAuthModeUnknown = 0,
    BDLActivityAuthModePublic = 1, 
    BDLActivityAuthModeCustom = 2, 
};
  • BDLActivityAuthModeUnknown(0):未知模式。
  • BDLActivityAuthModePublic(1):公开模式。昵称由观众输入或者由 BDLUserInfoConfigurationsetNickname:complete: 方法的 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。

BDLPlayerLoadState

播放器加载状态。

typedef NS_ENUM(
    NSInteger,
    BDLPlayerLoadState
)

枚举值

类型

说明

BDLPlayerLoadStateUnknown

0

未知。

BDLPlayerLoadStateStalled

1

卡顿。

BDLPlayerLoadStatePlayable

2

可以播放,即卡顿停止。

BDLPlayerLoadStateError

3

加载遇到错误。

BDLActivityBookingModel

直播预约信息。

@interface BDLActivityBookingModel : BDLBaseModel
/// 直播名称
@property (nonatomic, copy) NSString *activityName;
/// 直播间的活动 ID
@property (nonatomic, strong) NSNumber *activityId;
/// 直播开始时间
@property (nonatomic, strong) NSDate *startDate;
/// 直播结束时间
@property (nonatomic, strong) NSDate *endDate;
/// 观众昵称。观众未输入昵称或未登录直播间时,取值为空
@property (nonatomic, copy, nullable) NSString *nickname;
/// 观众在第三方平台的唯一标识。仅在鉴权模式为自定义,且观众已登录直播间时有值
@property (nonatomic, copy, nullable) NSString *externalUserId;
/// 用户 ID,观众在企业直播的唯一标识。观众未输入昵称或未登录直播间时,取值为 0
@property (nonatomic, strong, nullable) NSNumber *userId;

@end
最近更新时间:2024.08.20 20:00:01
这个页面对您有帮助吗?
有用
有用
无用
无用