Skip to content

highras/rtm-client-sdk-android-rtc

Repository files navigation

android-rtm-sdk-RTC 使用文档

版本支持

  • RTM最低支持Android版本为5.0(api-21) 带有RTC(实时音视频)功能最低支持Android版本为7.0(api-24)

依赖集成

使用说明

  • 需要的权限

      <uses-permission android:name="android.permission.BLUETOOTH" />
      <uses-permission android:name="android.permission.RECORD_AUDIO" />
      <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"/>
      <uses-permission android:name="android.permission.CAMERA" />
      <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    
  • 混淆 请在混淆规则里加入

    -keep class com.fpnn.sdk.**{*;}

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

    -keep class org.msgpack.core.**{*;}

  • RTM说明:

    • 服务器push消息:请继承RTMPushProcessor类,重写自己需要的push系列函数(所有push函数在子线程执行,如需更新ui请自行切回主线程 RTM的push回调函数和收发线程在一起 如果用户在push的回调函数中有耗时操作 建议请独开启线程处理)
    • RTM的各项服务配置和增值服务可以在后台配置,请登陆管理后台预览详细的配置参数
    • 所有同步和异步接口都会返回 RTMAnswer结构,请优先判断answer中的errorCode 如果为0正常
    • RTM的room和group的区别 group在服务端会持久化 room是非持久化(用户下线或者RTM链接断开会自动离开room)
    • room默认不支持多房间(当用户进入第二个房间会自动退出第一个房间) 用户可以在控制台开启支持多房间配置
    • RTMConfig是RTM的全局配置参数,所有配置均已有默认值,使用者如需要重新设置默认值,请在初始化RTMclient调用带RTMConfig的构造函数。
  • RTC说明:

    • 开启RTC功能需要先登陆成功
    • 可以进入多个实时语音房间 但必须只有一个当前活跃的房间(必须调用setActivityRoom设置当前活跃房间才能正常接收和发送语音)
    • 视频房间和实时翻译语音房间只能进入一个
    • 需要订阅才能正常接收对方视频流
    • 链接断开,进入的实时音视频房间会自动退出,需要在重连完成后再次进入房间 订阅的视频流需要重新订阅
  • 用户可以重写日志类 收集和获取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));
        }
    }
    

使用示例

   public class RTMExampleQuestProcessor extends RTMPushProcessor {
       ....//重写自己需要处理的业务接口
   }

   RTMClient client = RTMCenter.initRTMClient(rtmEndpoint,info.pid, uid, new RTMExampleQuestProcessor(), currentActivity);
   
   rtmclient.setErrorRecoder(new TestErrorRecorder())
   client.login(String token)
   
   login成功后可以正常调用rtm聊天相关接口
   client.sendChat/ client.sendMessage.....

实时音频房间
   client.enterRTCRoom(100);
   client.setActivityRoom(100);
   client.canSpeak(boolean status) //打开或关闭麦克风
实时视频房间
   client.enterRTCRoom(100);
   client.setPreview(previewSurfaceView);//设置预览view
   client.opencamera() //打开摄像头
   client.subscribeVideos(100, new HashMap<Long, SurfaceView>() ) //订阅对方视频流
实时翻译语音房间
   client.createTranslateRTCRoom
发起p2p请求
   client.requestP2PRTC(1, 12345, null, callback)

接口说明

[RTM接口]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages