You need to enable JavaScript to run this app.
导航
功能实现
最近更新时间:2024.11.11 16:29:47首次发布时间:2024.11.11 16:29:47

本文介绍如何使用 Flutter 直播间观播 SDK 进入直播间、离开直播间、设置直播间状态回调等。

前提条件

您已完成 Flutter 直播间观播 SDK 的集成。详见集成 Flutter 直播间观播 SDK

注意事项

由于模拟器下可能出现异常,建议您使用真机进行代码调试。

示例 Demo

点击此处,下载查看示例代码。

使用 SDK

引入头文件

import 'package:bdlive_flutter_viewer/bdlive_flutter_viewer.dart';

初始化 SDK

建议在项目的 main.dart 文件中,通过 runApp 方法初始化 SDK,以确保 SDK 正确的初始化顺序。

TTSDKConfiguration config = TTSDKConfiguration(
  appID: 'APP_ID',// 将 APP_ID 替换为在 SDK 应用创建后生成的 App ID。
  bundleID: 'BUNDLE_ID', // 将 BUNDLE_ID 替换为 iOS App 的唯一标识(Bundle Identifier)。
  appName: 'APP_NAME', // 将 APP_NAME 替换为创建 SDK 应用时填写的 App 英文名称。
  channel: 'CHANNEL_NAME', // 将 CHANNEL_NAME 替换为 App 的渠道名称,例如 App Store。
  vodLicenseFilePath: 'VOD_LICENSE_PATH', // 将 VOD_LICENSE_PATH 替换为点播 License 文件的路径,例如 assets/vod.lic。
  liveLicenseFilePath: 'LIVE_LICENSE_PATH', // 将 LIVE_LICENSE_PATH 替换为直播 License 文件的路径,例如 assets/live.lic。
  appVersion: 'APP_VERSION',  // 将 APP_VERSION 替换为 App 的版本号。合法版本号应包含 2 个或以上的分隔符,例如 1.3.2。
);
BdliveViewerApi.startWithConfiguration(config);

进入直播间

您可以通过以下示例代码,让观众进入完整直播间并在 App 内显示完整直播间页面。

/**
 * @param activity:进入直播间所需的信息。详见 BdlActivityConfig。
 */
Future<bool> enterLiveRoom(BdlActivityConfig activity);

离开直播间

在观众退出您的观看页面时,您可以通过以下示例代码,离开完整直播间。如果正在显示浮窗播放器,则同时销毁浮窗播放器。

Future<void> leaveLiveRoom();

在观众退出您的观看页面时,您可以通过以下示例代码,离开完整直播间。如果观众正在观看视频,则同时显示浮窗播放器。

说明

对于 Android 设备而言,仅在观众开启悬浮窗权限后,才会显示浮窗播放器。

Future<void> manualClickLiveRoomExitBtn();

加载商品卡片和广告的跳转链接

观众点击配置了跳转链接的菜单内商品卡片、浮窗商品卡片、页头广告、页中广告或浮标广告后,默认不会加载跳转链接。如需加载跳转链接,您可以通过 onOpenUrlCallback 回调监听观众的点击行为,并调用以下方法,执行后续 SDK 默认的跳转行为。

说明

您也可以通过拦截后续 SDK 的默认跳转行为,在观众完成点击后,实现自定义跳转逻辑,即 SDK 不会执行后续默认的跳转行为,从而能够根据特定场景或需求,定制页面的跳转行为,提升用户体验。

/**
 * @param url:商品卡片或广告配置的跳转链接。
 * @param type:跳转链接所属的内容类型。详见 BdlViewerOpenUrlType。
 * @param enableFloating:是否在观看页浮层展示内容。
    true:在观看页浮层展示内容,即在完整直播间的页面中弹出 WebView 弹窗展示跳转链接的内容。
    false:在新页面展示内容,即通过 App 的 DeepLink 机制寻找符合条件的页面展示跳转链接的内容。
 */
Future<void> openUrl(String url, BdlViewerOpenUrlType type, bool enableFloating);

设置直播间状态回调

设置直播间状态回调,监听完整直播间页面的事件。

Future<void> setLiveRoomStatusListener(BdlLiveRoomStatusListener listener);

直播间状态回调

class BdlLiveRoomStatusListener {
  /**
   * 直播间切换到前台回调。
   * @param activity:进入直播间所需的信息。详见 BdlActivityConfig。
   */
  void Function(BdlActivityConfig activity)? onLiveRoomActivityResume;

  /**
   * 直播间切换到后台回调。
   * @param activity:进入直播间所需的信息。详见 BdlActivityConfig。
   */
  void Function(BdlActivityConfig activity)? onLiveRoomActivityPause;

  /**
   * 浮窗播放器即将显示回调。
   * @param activity:进入直播间所需的信息。详见 BdlActivityConfig。
   */
  void Function(BdlActivityConfig activity)? onFloatViewWillAppear;

  /**
   * 浮窗播放器即将消失回调。
   * @param activity:进入直播间所需的信息。详见 BdlActivityConfig。
   */
  void Function(BdlActivityConfig activity)? onFloatViewWillClose;

  /**
   * 配置了跳转链接的商品卡片(菜单内商品卡片、浮窗商品卡片)和广告(页头广告、页中广告、浮标广告)点击回调。
   * @param url:商品卡片或广告配置的跳转链接。
   * @param type:跳转链接所属的内容类型。详见 BdlViewerOpenUrlType。
   * @param enableFloating:企业直播服务端返回的是否在观看页浮层展示内容的设置。
      true:在观看页浮层展示内容。
      false:在新页面展示内容。
   */
  void Function(String url, BdlViewerOpenUrlType type, bool enableFloating)? onOpenUrlCallback;
}