日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Android

DingRTC的基本功能包含初始化SDK、加入頻道、本地發布、訂閱遠端和離開頻道等。通過閱讀本文,您可以了解DingRTC的基本功能。

前提條件

操作步驟

說明 本文中的實現方法僅供參考,您可以根據實際業務需求進行開發。
  1. 初始化SDK。

    您需要創建RtcEngine實例,并注冊回調。具體回調接口請參見回調及監聽

    import static com.ding.rtc.DingRtcEngine
    
    
    mRtcEngine = DingRtcEngine.create(getApplicationContext(), "");
    mRtcEngine.setRtcEngineEventListener(new DingRtcEngineEventListener() {      
    		// 重寫您需要監聽的回調方法。
    });
    1. 本地預覽。在創建完RtcEngine實例后,您可以創建canvas布局進行本地預覽視頻。

      DingRtcEngine.DingRtcVideoCanvas canvas = new DingRtcEngine.DingRtcVideoCanvas();
      SurfaceView localView = mRtcEngine.createRenderSurfaceView(this);
      canvas.view = localView;
      canvas.renderMode = DingRtcEngine.DingRtcRenderMode.DingRtcRenderModeCrop;
      mRtcEngine.setLocalViewConfig(canvas, DingRtcVideoTrackCamera);
      mRtcEngine.startPreview();
    2. 可選:取消本地預覽。

      mRtcEngine.stopPreview();
    3. 設置發布與訂閱。

      • SDK在入會時不會自動推流。想要入會即推流的話,在app里實現

        new DingRtcEngineEventListener() {
          	@Override
        		public void onJoinChannelResult(int result, String channel, String userId, int elapsed) {
                runOnUiThread(() -> {
                    if(result == 0) {
                        mRtcEngine.publishLocalAudioStream(true);
                        mRtcEngine.publishLocalVideoStream(true);
                    }
                });
            }
        }
      • SDK默認入會后自動訂閱遠端的音頻流與視頻流,如果您不希望自動訂閱音頻與視頻,可以在入會前通過以下接口設置:

        // 設置自動拉流,以及視頻清晰度
        // 這些值根據需要配置
        boolean autoSubAudio = true;
        boolean autoSubVideo = true;
        DingRtcEngine.DingRtcVideoStreamType preferVideoQuality = DingRtcEngine.DingRtcVideoStreamType.DingRtcVideoStreamTypeFHD;
        
        mRtcEngine.setDefaultSubscribeAllRemoteAudioStreams(autoSubAudio);
        mRtcEngine.setDefaultSubscribeAllRemoteVideoStreams(autoSubVideo);
        mRtcEngine.setRemoteDefaultVideoStreamType(preferVideoQuality);
  2. 加入頻道。

    DingRtcAuthInfo auth = new DingRtcAuthInfo();
    auth.channelId = /* 頻道ID */;
    auth.appId = /* 應用ID */;
    auth.token = /* 頻道鑒權令牌Token */;
    auth.userId = /* 用戶ID */;
    auth.gslbServer = /* GSLB地址 */;
    mRtcEngine.joinChannel(auth, nick /* 顯示名稱 */);

    參數

    描述

    appId

    應用ID,在控制臺應用管理頁面創建和查看。

    channelId

    頻道ID。1~64位,由大小寫字母、數字、下劃線(_)、短劃線(-)組成。

    userId

    用戶ID。1~64位,由大小寫字母、數字、下劃線(_)、短劃線(-)組成。

    說明

    同一個用戶ID在其他端登錄,先入會的端會被后入會的端踢出頻道。

    token

    頻道鑒權令牌。

    gslbServer

    服務地址,可為空,默認值為:"https://gslb.dingrtc.com",請您通過業務服務器下發到客戶端SDK,不建議您將該地址固化在客戶端代碼。

  3. 發布或取消發布本地流。

    入會之后,也可以改變推流狀態。

    • 發布本地音頻流和視頻流

      如果此時沒有推流,可以調用以下接口進行發布音頻或者視頻:

      mRtcEngine.publishLocalVideoStream(true);
      mRtcEngine.publishLocalAudioStream(true);

      或者取消推流

      mRtcEngine.publishLocalVideoStream(false);
      mRtcEngine.publishLocalAudioStream(false);

      音頻和視頻可以獨立控制。

  4. 訂閱或取消訂閱遠程流。

    • 訂閱遠端音頻流和視頻流

      如果您在入會前沒有設置訂閱音頻流和視頻流,則入會后會自動訂閱遠端的音頻流和視頻流;如果您在入會前設置取消自動訂閱音頻流和視頻流,則入會后需要調用以下接口進行手動訂閱:

      //
      // 對整體操作:全部訂閱或者全部不訂閱
      //
      // 音頻
      mRtcEngine.subscribeAllRemoteAudioStreams(true); // false表示不訂閱
      // 視頻
      mRtcEngine.subscribeAllRemoteVideoStreams(true);
      mRtcEngine.setRemoteDefaultVideoStreamType(preferVideoQuality); // 設置拉流最高質量
      
      //
      // 對個體操作
      //
      // 音頻
      // SDK目前不支持對個體音頻訂閱操作
      // 視頻
      mRtcEngine.subscribeRemoteVideoStream(remoteUid,
          DingRtcEngine.DingRtcVideoTrack.DingRtcVideoTrackCamera,
          true); // false 表示不訂閱
      mRtcEngine.SetRemoteVideoStreamType(remoteUid, type);
          // type: DingRtcVideoStreamTypeFHD, DingRtcVideoStreamTypeHD,
          // DingRtcVideoStreamTypeSD, DingRtcVideoStreamTypeLD
          // 表示期望最高訂閱規格。實際碼流還要受限于拉流側的網絡質量

      訂閱視頻還需要設置窗口以便能夠看到視頻內容。比較推薦的時機是在onRemoteTrackAvailableNotify消息收到時,也可以提前設置,或者晚些時候設置。

      SurfaceView remoteView = mRtcEngine.createRenderSurfaceView(this);
      DingRtcEngine.DingRtcVideoCanvas canvas = new DingRtcEngine.DingRtcVideoCanvas();
      canvas.view = remoteView;
      canvas.renderMode = DingRtcEngine.DingRtcRenderMode.DingRtcRenderModeCrop;
      mRtcEngine.setRemoteViewConfig(canvas, remoteUid, DingRtcEngine.DingRtcVideoTrack.DingRtcVideoTrackCamera);

  5. 離開頻道。

    mRtcEngine.leaveChannel();

  6. 銷毀引擎。

if(mRtcEngine != null) {
    mRtcEngine.destroy();
    mRtcEngine = null;
}

后續步驟

您可以下載示例代碼,快速運行Demo,實現頻道內和其他人進行實時音視頻通話,詳情請參見運行 Android Demo。