本文介绍如何使用 Flutter 直播间观播 SDK 进入直播间、离开直播间、设置直播间状态回调等。
您已完成 Flutter 直播间观播 SDK 的集成。详见集成 Flutter 直播间观播 SDK。
由于模拟器下可能出现异常,建议您使用真机进行代码调试。
点击此处,下载查看示例代码。
import 'package:bdlive_flutter_viewer/bdlive_flutter_viewer.dart';
建议在项目的 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:进入直播间所需的信息。 */ Future<bool> enterLiveRoom(BdlActivityConfig activity);
在观众退出您的观看页面时,您可以通过以下示例代码,离开完整直播间。如果正在显示浮窗播放器,则同时销毁浮窗播放器。
Future<void> leaveLiveRoom();
在观众退出您的观看页面时,您可以通过以下示例代码,离开完整直播间。如果观众正在观看视频,则同时显示浮窗播放器。
说明
对于 Android 设备而言,仅在观众开启悬浮窗权限后,才会显示浮窗播放器。
Future<void> manualClickLiveRoomExitBtn();
观众点击配置了跳转链接的菜单内商品卡片、浮窗商品卡片、页头广告、页中广告或浮标广告后,默认不会加载跳转链接。如需加载跳转链接,您可以通过 onOpenUrlCallback
回调监听观众的点击行为,并调用以下方法,执行后续 SDK 默认的跳转行为。
说明
您也可以通过拦截后续 SDK 的默认跳转行为,在观众完成点击后,实现自定义跳转逻辑,即 SDK 不会执行后续默认的跳转行为,从而能够根据特定场景或需求,定制页面的跳转行为,提升用户体验。
/** * @param url:商品卡片或广告配置的跳转链接。 * @param type:跳转链接所属的内容类型。 * @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:进入直播间所需的信息。 */ void Function(BdlActivityConfig activity)? onLiveRoomActivityResume; /** * 直播间切换到后台回调。 * @param activity:进入直播间所需的信息。 */ void Function(BdlActivityConfig activity)? onLiveRoomActivityPause; /** * 浮窗播放器即将显示回调。 * @param activity:进入直播间所需的信息。 */ void Function(BdlActivityConfig activity)? onFloatViewWillAppear; /** * 浮窗播放器即将消失回调。 * @param activity:进入直播间所需的信息。 */ void Function(BdlActivityConfig activity)? onFloatViewWillClose; /** * 配置了跳转链接的商品卡片(菜单内商品卡片、浮窗商品卡片)和广告(页头广告、页中广告、浮标广告)点击回调。 * @param url:商品卡片或广告配置的跳转链接。 * @param type:跳转链接所属的内容类型。 * @param enableFloating:企业直播服务端返回的是否在观看页浮层展示内容的设置。 true:在观看页浮层展示内容。 false:在新页面展示内容。 */ void Function(String url, BdlViewerOpenUrlType type, bool enableFloating)? onOpenUrlCallback; }