alicloud_impinteraction_liveroom

本插件是低代码音视频工厂直播低代码接入(含UI)(以下简称直播低代码)的Flutter实现插件。

环境要求

Android环境要求:

  • 系统版本:支持Android 5.0及以上版本。
  • API版本:支持21及以上版本。
  • CPU架构:支持实体设备架构armeabi-v7a、arm64-v8a。
  • 其他:不支持视频采集旋转,不支持USB外接摄像头。

iOS环境要求:

  • 设备类型:支持iPhone和iPad所有型号。
  • CPU架构:支持iOS真机armv7、arm64架构,不支持模拟器i386、X86_64架构。
  • 系统版本:支持iOS 10.0及以上版本。
  • 其他:不支持bitcode,不支持屏幕旋转。 前提条件 客户端集成前,请确保已经通过控制台创建应用并获取客户端集成需要的信息(应用ID,APP Key,低代码集成服务地址,低代码集成服务密钥)。创建指引请参见创建应用。

开始接入

欲使用本插件,需了解直播低代码接入流程

前提条件

客户端集成前,请确保已经通过控制台创建应用并获取客户端集成需要的信息(应用ID,APP Key,低代码集成服务地址,低代码集成服务密钥)。创建指引请参见创建应用

工程配置

Android工程配置

minSdkVersion配置

工程配置中添加minSdkVersion配置项 (> 21)

android {
    defaultConfig {
        minSdkVersion 21
    }
}

覆盖android:label

在应用的AndroidManifest.xml文件的<application>标签中添加'tools:replace="android:label"

add 'tools:replace="android:label"' to

iOS工程配置

支持系统版本

iOS 10.0

  • iOS工程 podFile中:

    platform :ios, '10.0'

  • xCode工程配置中: General -> DeploymentInfo -> iOS10.0

关闭bitcode

不支持bitcode——需在工程配置中关闭bitcode

配置设备权限

需要在Xcode工程本身的plist文件中主动配置以下三项:

Key Value
Privacy - Camera Usage Description Use camera
Privacy - Microphone Usage Description Use microphone
Application uses Wi-Fi YES

API使用

完整的代码实现逻辑请参见开源工程

初始化

需要传入应用配置信息

(应用ID,APP Key,低代码集成服务地址,低代码集成服务密钥)。创建指引请参见创建应用 需注意AppKey区分平台,此插件中需同时传入 appKey4Android (Android平台AppKey)、appKey4iOS(iOS平台AppKey)

Future<void> initPlugin() async {
  String initResult;
  try {
    var param = {
      'appId': '$appId',
      'appKey4Android': '$appKey4Android',
      'appKey4iOS': '$appKey4iOS',
      'serverHost': '$serverHost',
      'serverSecret': '$serverSecret',
    };

    initResult = await AlicloudImpinteractionClassroom.init(param) ??
        'Unknown init result';
  } on PlatformException {
    initResult = 'Failed to init.';
  }

  if (!mounted) return;

  setState(() {
    _initResult = initResult;
  });
}

开启直播或者进入直播间


  Future<void> setUp() async {
    String value = 'unknown';
    try {
      final String paramJson =
          await rootBundle.loadString('assets/demo_param.json');
      final demoParam = await json.decode(paramJson);

      var param = {
        'userId': '$userId',
        'liveId': '$liveId',
        // role参数: anchor代表主播 audience代表观众(当选择观众角色时,liveId必填) 
        'role': choosenRole == indexAnchor ? 'anchor' : 'audience', 
      };
      value = await AlicloudImpinteractionLiveroom.setUp(param) ??
          'Unknown setUp result';
    } on Exception {
      value = 'Failed to setUp';
    }
    setState(() {
      _setUpResult = value;
    });
  }