Last updated:
0 purchases
linkv rtc im for 1x
LinkV Flutter集成文档 #
技术交流及商务合作欢迎进QQ群交流:1160896626
一、集成linkv_rtc_im_for_1x插件 #
在pubspec.yaml中添加以下依赖
dependencies:
linkv_rtc_im_for_1x: ^0.4.1
copied to clipboard
二、iOS工程配置 #
添加权限、关闭ATS、支持PlatformView
点击ios->Runner.xcworkspace打开Xcode工程
右键info.plist->Open As -> Source Code
复制以下代码粘贴到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>
copied to clipboard
三、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" />
copied to clipboard
3.2 支持http域名 #
由于Android 9.0以上版本默认禁止使用http域名,但sdk还需要使用到http域名,故需要做一些配置以支持Android 9.0以上的版本使用http域名
在项目路径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>
copied to clipboard
打开项目中的android/app/src/main/AndroidManifest.xml文件,在application标签中添加如下属性:
...
android:networkSecurityConfig="@xml/network_security_config"
...
copied to clipboard
3.3 防止代码混淆
打开项目中的android/app/proguard-rules.pro文件,添加如下代码:
...
-keep class com.linkv.rtc.* { *; }
-keep public class com.im.** { *; }
copied to clipboard
四、如何使用 #
4.1 初始化SDK #
RtmFlutterPlugin.initSDK("your_app_id","your_app_sign", isTestEnv, isInternationalEnv).then((result){
print('initSDK result:$result');
if(result == LVErrorCode.SUCCESS){
_isSDKInit = true;
}
});
copied to clipboard
4.2 设置IM事件监听,实现IM回调方法 #
RtmFlutterPlugin.setIMEventCallback(LVIMEventCallback callback);
copied to clipboard
实现以下IM回调
// 查询token事件,你需要通过server to server方式获取IM的token后调用setIMToken方法将token设置给SDK
// SDK会向IM服务器进行校验,如果认证成功则调用onIMAuthSucceed方法,失败则调用onIMAuthFailed
// 使用过程中如果发现token过期调用onIMTokenExpired
void onQueryIMToken();
// 认证失败
void onIMAuthFailed(int ecode, int rcode, String uid, boolean isTokenExpired);
// 认证成功
void onIMAuthSucceed(String uid, String token, long unReadMsgSize);
// 认证过期
void onIMTokenExpired(String uid, String token);
/// 收到IM消息
void onIMMessageReceive(LVIMMsg msg) {}
copied to clipboard
4.3 登录SDK #
// 返回值为0代表登录成功,其它代表失败
RtmFlutterPlugin.loginUser(String userId);
copied to clipboard
4.4 发送私信 #
私信即点对点IM消息,发送给指定userId的用户
RtmFlutterPlugin.sendPrivateMessage(MessageSubType sub, String tid, String type, String content)
copied to clipboard
4.5 登录房间 #
RtmFlutterPlugin.loginRoom("room_id", "user_id", isMaster, isAudioOnly);
copied to clipboard
4.6 设置房间事件监听 #
RtmFlutterPlugin.setVideoCallback(LinkVVideoCallback callback);
copied to clipboard
当收到登录房间成功的回调之后才可以
RtmFlutterPlugin.startPublishing
RtmFlutterPlugin.sendRoomMessage
4.7 添加视图到界面上 #
在需要展示视频流的时候把LinkVVideoWidget添加到视图上即可
Widget buildMeView() {
return Container(
width: 300,
height: 200,
child: LinkVVideoWidget(uid: _remoteUid, isLocalPreview: true, createCallback: _createCallback),
);
}
copied to clipboard
4.8 退出房间 #
RtmFlutterPlugin.logoutRoom(String userId);
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.