ISDP-SDK使用

时间:2023-11-01 16:15:15

SDK使用

图7.2.2-1 SDK流程

  1. 创建新的项目工程,导入SDK后,需要创建客户端并获取本地音视频设备信息。
  2. 创建本地流并初始化。
  3. 当用户加入房间后,将通过回调的方式通知房间内的其他用户,收到用户加入的回调后,可以对音视频流进行订阅、取消订阅等其它操作。
  4. 在会中,也可以对本地录音或播放设备等进行配置。
  5. 用户离开房间后,房间内其他用户会收到该用户离开的回调信息,离开房间后,需销毁对应资源。

在时序图中,单击相应接口名称可快速跳转到相应接口位置查看其使用方法。

  1. 创建引擎并初始化样例。
  private void ensureEngineCreated() {        try {            mRtcEngine = new CreateVideoEngine().create(mContext, EngineType.ISDP);   //创建引擎            mRtcEngine.createVideo(mContext, appId,                    videoEngineListener);    //初始化引擎对象        } catch (Exception e) {                     }  }

2.回调监听器样例。

private ISDPVideoEngineListener videoEngineListener = new ISDPVideoEngineListener () {        @Override    //远端视频流状态变化回调        public void onRemoteVideoStateChanged(String s, int i, int i1, int i2) {        }        @Override   //远端音频流状态变化回调        public void onRemoteAudioStateChanged(String s, int i, int i1, int i2) {        }        @Override   //加入房间成功回调        public void onJoinMainChannelSuccess(String s, String s1, int i) {        }        @Override   //远端用户加入房间回调        public void onMainUserJoined(String s, String s1, int i) {        }        @Override   //加入房间失败回调        public void onMainError(int i) {        }        @Override   //远端用户离开房间回调        public void onMainUserOffline(String s, int i) {        }         @Override   //离开房间回调        public void onMainLeaveChannel(RtcStats rtcStats) {        }        @Override   //远端用户第一帧解码成功回调        public void onMainFirstRemoteVideoFrame(String s, int i, int i1, int i2) {        }        @Override   //用户第一帧解码成功回调        public void onMainFirstLocalVideoFrame(int i, int i1, int i2) {        }        @Override   //客户端角色改变回调        public void onClientRoleChanged(int i, int i1) {        }        @Override   //音频流状态改变回调        public void onLocalAudioStateChanged(int i, int i1) {        }        @Override   //远端视频流状态回调        public void onRemoteVideoStats(RemoteVideoStats remoteVideoStats) {        }        @Override   //刷新入会凭证        public void renewToken() {        }        @Override   //第一帧音频解码成功回调        public void onFirstLocalAudioFrame(int i) {        }        @Override   //远端用户第一帧视频解码回调        public void onFirstRemoteVideoDecoded(String s, int i, int i1, int i2) {        }        @Override  //推流发布回调        public void onStreamPublished(String s, int i) {        }        @Override   //Token即将失效回调        public void onTokenPrivilegeWillExpire(String s) {        }        @Override   //远端用户音频状态回调        public void onRemoteAudioStats(RemoteAudioStats remoteAudioStats) {        }        @Override   //远端用户第一帧音频回调        public void onFirstRemoteAudioFrame(String s, int i) {        }         /**         * 当前音频播放方式改变         *         * @param mode 0-默认是扬声器 1-耳机         */        @Override        public void onAudioPlayModelChanged(int mode) {        }        @Override   //音量调整回调        public void onAudioVolumeIndication(AudioVolumeInfo[] audioVolumeInfos, int i) {        }        @Override   //媒体服务状态回调        public void onRtcStats(RtcStats rtcStats) {        }        @Override   //网络质量回调        public void onNetworkQuality(String s, int i, int i1) {        }        @Override   //监控数据上报回调        public void onMonitorReady(MonitorInfo monitorInfo) {        }        @Override   //媒体服务连接状态改变回调        public void onConnectionStateChanged(int i, int i1) {        }        @Override   //媒体服务连接失败回调        public void onConnectionLost() {        } };

3.加入房间。

public void joinChannel(String channelId, final String token, String userId) {        if (TextUtils.isEmpty(channelId)) {            return;         }        if (mRtcEngine == null) {            VideoSDKLogger.info(tag, "joinChannelWithRtcChannel  rtcEngine is null:");            return;        }        mRtcEngine.joinChannel(channelId,token,"",userId, appId, null);    }

4.创建预览视图,在 (onJoinChannelSuccess回调成功后)。

public final void preview(SurfaceView view, String channelId, String userId) {        ensureEngineCreated();        if (mRtcEngine != null) {                mRtcEngine.setupLocalVideo(view, VideoCanvas.RENDER_MODE_HIDDEN, userId);                mRtcEngine.startPreview(channelId);           }

5.离开房间。

RtcEngine.leaveChannel();finish();

6.销毁引擎

RTCEngine.onDestroy();
support.huaweicloud.com/isdp_video/iRTC_007_02-2.html