云服务器内容精选

  • SDK使用 图7.2.2-1 SDK流程 创建新的项目工程,导入SDK后,需要创建客户端并获取本地音视频设备信息。 创建本地流并初始化。 当用户加入房间后,将通过回调的方式通知房间内的其他用户,收到用户加入的回调后,可以对音视频流进行订阅、取消订阅等其它操作。 在会中,也可以对本地录音或播放设备等进行配置。 用户离开房间后,房间内其他用户会收到该用户离开的回调信息,离开房间后,需销毁对应资源。 在时序图中,单击相应接口名称可快速跳转到相应接口位置查看其使用方法。 创建引擎并初始化样例。 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(); 父主题: Android SDK