linkv_rtc 0.0.9
linkv_rtc: ^0.0.9

Flutter Android iOS

linkv_rtc Audio/Video Flutter SDK is a flutter plugin wrapper based on LinkV native Android/iOS SDK.

LinkV Flutter集成文档 #

一、集成linkv_rtc插件 #

在pubspec.yaml中添加以下依赖

dependencies:
  linkv_rtc: ^0.0.9

二、iOS工程配置 #

添加权限、关闭ATS、支持PlatformView

  1. 点击ios->Runner.xcworkspace打开Xcode工程

  2. 右键info.plist->Open As -> Source Code

  3. 复制以下代码粘贴到info.plist中

<key>io.flutter.embedded_views_preview</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
<key>NSCameraUsageDescription</key>
<string>LinkV 需要使用摄像头权限,否则无法发布视频直播,无法与主持人视频连麦</string>
<key>NSMicrophoneUsageDescription</key>
<string>LinkV 需要使用麦克风权限,否则无法发布音频直播,无法与主持人音频连麦</string>

imgimg

三、Android工程配置 #

3.1 添加权限

打开项目中的android/app/src/main/AndroidManifest.xml文件,添加如下代码

<!--    访问网络连接,可能产生GPRS流量-->
<uses-permission android:name="android.permission.INTERNET" />
<!--    获取网络信息状态,如当前的网络连接是否有效-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--    获取当前WiFi接入的状态以及WLAN热点的信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 允许访问摄像头进行拍照-->
<uses-permission android:name="android.permission.CAMERA" />
<!--    允许使用相机-->
<uses-feature android:name="android.hardware.camera" />
<!--    允许使用相机的自动对焦功能-->
<uses-feature android:name="android.hardware.camera.autofocus" />
<!--    录制声音通过手机或耳机的麦克-->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!--    修改声音设置信息-->
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /

img

3.2 支持http域名

由于Android 9.0以上版本默认禁止使用http域名,但sdk还需要使用到http域名,故需要做一些配置以支持Android 9.0以上的版本使用http域名

  1. 在项目路径android/app/src/main/res/xml文件夹中创建文件network_security_config.xml,并添加如下代码:
  <?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
  1. 打开项目中的android/app/src/main/AndroidManifest.xml文件,在application标签中添加如下属性:
...
android:networkSecurityConfig="@xml/network_security_config"
...

img

3.3 防止代码混淆

打开项目中的android/app/proguard-rules.pro文件,添加如下代码:

...
-keep class com.linkv.rtc.* { *; }

四、如何使用 #

img

4.1 初始化SDK

LinkVRTCEngine.initSDK("your_app_id","your_app_sign", isTestEnv, isInternationalEnv).then((result){
  print('initSDK result:$result');
  if(result == LVErrorCode.SUCCESS){
    _isSDKInit = true;
  }
});

4.2 登录房间

void loginRoom() async {
  var result = await LinkVRTCEngine.loginRoom("room_id", "user_id", isMaster, isAudioOnly);
  print("Wing login room result = ${result.code}");
}
// 登录成功之后开始推流
LinkVRTCEngine.startPublishing();

4.3 添加视图到界面上

  • 只有在有视频流需要展示的时候才把LinkVVideoWidget展示在视图上,否则应该使用Container进行占位
Widget buildRemoteView() {
  if (_remoteUid.length == 0) return Container();

  return Container(
    width: MediaQuery.of(context).size.width,
    height: MediaQuery.of(context).size.height * 0.5 - 120,
    child: LinkVVideoWidget(uid: _remoteUid, isMaster: false),
  );
}
0
likes
80
pub points
0%
popularity

linkv_rtc Audio/Video Flutter SDK is a flutter plugin wrapper based on LinkV native Android/iOS SDK.

Homepage

Documentation

API reference

Uploader

develop@linkv.sg

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on linkv_rtc