本文介绍如何将 Flutter 直播间观播 SDK 集成到您的 App 中。
Flutter 直播间观播 SDK 的项目结构如下所示。
├── CHANGELOG.md ├── LICENSE ├── README.md ├── analysis_options.yaml ├── android ├── example ├── ios ├── lib ├── pubspec.lock └── pubspec.yaml
关键文件夹及说明如下表所示。
文件夹 | 说明 | 是否必需 |
---|---|---|
lib | Flutter 基于原生 SDK 开发的插件层。 | 是 |
android | Android 端原生代码。 | 是 |
ios | iOS 端原生代码。 | 是 |
example | Flutter 完整直播间 Demo。 | 否 |
Flutter 直播间观播 SDK 目前仅支持本地依赖。
pubspec.yaml
文件中添加 bdlive_flutter_viewer
依赖项,如下所示:dependencies: flutter: sdk: flutter # 将 <SDK_PATH> 替换为项目下 SDK 的文件路径。 bdlive_flutter_viewer: path: <SDK_PATH>
为 Android 和 iOS 分别进行相应配置。
增加以下配置到 app
目录下的 build.gradle
文件。
android { defaultConfig { minSdkVersion 21 ndk { // 推荐过滤的 CPU 架构。 abiFilters "arm64-v8a" } } // 开启数据绑定。 buildFeatures { dataBinding true } }
在 app
目录下的 AndroidManifest.xml
文件中添加以下权限配置。
<!-- 访问本地存储权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 网络状态权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <!-- 悬浮窗权限 --> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 录音权限 --> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 摄像头权限 --> <uses-permission android:name="android.permission.CAMERA" /> <!-- 日历相关权限 --> <uses-permission android:name="android.permission.READ_CALENDAR"/> <uses-permission android:name="android.permission.WRITE_CALENDAR"/>
在 app
目录下的 proguard-rules.pro
文件中添加以下混淆规则。
-keep class com.pandora.**{*;} -keep class com.ss.**{*;} -keep class com.bytedance.**{*;} -keep class com.pandora.ttlicense2.**{*;} -keep class com.bytertc.**{*;} -keep class org.webrtc.**{*;} -keep class log.**{*;}
在 iOS 项目的 Podfile
文件中添加以下 Source。
说明
建议使用 1.11.0 或更高版本的 CocoaPods。如果您的 iOS 项目尚未使用过 CocoaPods,在 iOS 项目根目录下,执行 pod init && pod install
,可以得到 Podfile
文件。
source 'https://github.com/cocoapods/Specs.git' source 'https://github.com/volcengine/volcengine-specs.git'
打开终端窗口,并 cd
到您的 iOS 项目目录。执行 pod install
命令。
在 Xcode 的 App Target 下,完成以下操作:
info.plist
文件,添加参数 SSAppID
,并设置参数值为在 SDK 应用创建后生成的 App ID。info.plist
文件中,通过以下任一方式添加权限:
info.plist
文件,并添加以下 key 和 string。您可以自定义 string 的值作为在系统弹出授权对话框时的提示信息。<!-- 相册写入权限 --> <key>NSPhotoLibraryAddUsageDescription</key> <string>App 需要获取您的相册写入权限,用于保存图片到相册</string> <!-- 相册访问权限 --> <key>NSPhotoLibraryUsageDescription</key> <string>App 需要获取您的相册访问权限,用于发送图片评论</string> <!-- 日历写入权限 --> <key>NSCalendarsUsageDescription</key> <string>用于直播预约提醒能力</string> <!-- 麦克风权限 --> <key>NSMicrophoneUsageDescription</key> <string>App 需要获取您的麦克风权限,用于连麦</string> <!-- 相机权限 --> <key>NSCameraUsageDescription</key> <string>App 需要获取您的相机权限,用于连麦</string>
(可选)如果需要 App 在后台运行时继续播放音频或者需要使用画中画功能,需要完成以下步骤:
(可选)如果您的 iOS 项目使用了 Bitcode,需要关闭 Bitcode。
设置全屏播放直播、预告或回放时支持的屏幕方向。
说明
将您获取到的直播 License 文件和点播 License 文件放入您的 Flutter 项目。此处以放入项目根目录下的assets
文件夹为例。
├── assets │ ├── live.lic │ └── vod.lic ├── pubspec.yaml
在 pubspec.yaml
文件中的 assets
下,添加 License 文件的路径。
assets: - assets/live.lic - assets/vod.lic
后续在初始化 SDK 时,需传入 License 文件的路径。详见初始化 SDK。
有关如何使用 Flutter 直播间观播 SDK,例如进入、离开直播间等,详见功能实现。