Skip to content

highras/rte-android-sdk

Repository files navigation

LiveDataEngine-sdk 使用文档

依赖集成

  • sdk需要依赖fpnn基础通讯库 请添加依赖implementation 'com.github.highras:fpnn:2.0.6'

  • RTM和IM功能最低支持Android版本为5.0(api-21) app/libs/LiveDataRTE-sdk.aar

  • 带有RTC实时音频功能最低支持Android版本为5.0(api-21) app/libs/LiveDataRTE-audio-sdk.aar

  • 带有RTC实时音视)功能最低支持Android版本为7.0(api-24) app/libs/LiveDataRTE-full-sdk.aar

使用说明

  • 需要的权限

      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.INTERNET"/>
    
    RTC需要的权限:
      <uses-permission android:name="android.permission.BLUETOOTH" />
      <uses-permission android:name="android.permission.RECORD_AUDIO" />
      <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    RTC视频
      <uses-permission android:name="android.permission.CAMERA" />
    
    
  • 说明:

    • LDEngine里分为RTM,IM,RTC,ValueAdd,VoicRoomClient对象
    • RTM为基础的信令传输
    • IM在RTM的基础上增加了各种推送和通知功能
    • RTC为实时音视频功能
    • ValueAdd为增值服务(翻译,审核)
    • VoicRoomClient为语聊房场景
    • RTM和IM功能为互斥关系 IMPushProcessor和IRTMPushProcessor只能设置一个
    • 服务器push消息:请实现自己需要的push系列函数(所有push函数在子线程执行,如需更新ui请自行切回主线程)
    • 各项服务配置和增值服务可以在后台配置,请登陆管理后台预览详细的配置参数
    • room和group的区别 group在服务端会持久化 room是非持久化(用户下线或者RTM链接断开会自动离开room)
    • room默认不支持多房间(当用户进入第二个房间会自动退出第一个房间) 用户可以在控制台开启支持多房间配置
    • sdk支持自动重连 不需要手动管理链接

    RTC说明:

    • 开启RTC功能需要先登陆成功
    • 可以进入多个实时语音房间 但必须只有一个当前活跃的房间(必须调用setActivityRoom设置当前活跃房间才能正常接收和发送语音)
    • 视频房间和实时翻译语音房间只能进入一个
    • 需要订阅才能正常接收对方视频流
    • 链接断开,进入的实时音视频房间会自动退出,需要在重连完成后再次进入房间 订阅的视频流需要重新订阅
    • 如果需要后台保持功能 请在初始化LDEngine 传入LiveDataConfig 将keepRTCBackGround置位true
  • 如需代码混淆 请在proguard-rules.pro 中添加

    -keep class com.LiveDataRTE.**{*;}

    -keep class org.msgpack.core.{*;} 如使用加密功能请添加 -keep class org.spongycastle.{*;}

  • 用户可以重写日志类 收集和获取sdk内部的错误信息(强烈建议重载日志类) 例如

     public class TestErrorRecorder extends ErrorRecorder {
        public TestErrorRecorder(){
            super.setErrorRecorder(this);
        }
    
        public void recordError(Exception e) {
            Log.i("log","Exception:" + e);
        }
    
        public void recordError(String message) {
            Log.i("log","Error:" + message);
        }
    
        public void recordError(String message, Exception e) {
            Log.i("log",String.format("Error: %s, exception: %s", message, e));
        }
    }
    

使用示例

   ldEngine = LDEngine.CreateEngine(rtmEndpoint, pid, userid, new IBasePushProcessor() {}, activity);
   如果使用IM
       IIMPushProcessor iimPushProcessor = new IIMPushProcessor() {
       ....//重写自己需要处理的业务接口
     }
     ldEngine.setIMPushProcessor(iimPushProcessor);
     
     如果使用RTM
     IRTMPushProcessor irtmPushProcessor = new IRTMPushProcessor(){
         ....//重写自己需要处理的业务接口
     }
     ldEngine.setRTMPushProcessor(irtmPushProcessor);
   
   设置日志收集类
   ldEngine.setErrorRecoder(new TestErrorRecorder())
   
   登录:
     ldEngine.login(String token)
   
     ldEngine.IM.sendChatMessage..../ldEngine.RTM.sendChatMessage....
     
     RTC功能:
     ldEngine.RTC.setRTCPushProcessor(new IRTCPushProcessor())
     ldEngine.RTC.enterRTCRoom(roomId);
     ldEngine.RTC.openMic();
     
     增值服务:
     ldEngine.ValueAdded.translate...

接口说明

[RTM接口]

[IM接口]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages