製品概要
製品の利点
応用シナリオ




// RTC Engine 簡易版 SDKは、RTCとライブストリーミング再生の二つの機能を含みますdependencies {implementation 'com.tencent.liteav:LiteAVSDK_TRTC:latest.release'}
repositoriesにmavenCentralリポジトリを追加していることを確認する必要があります。defaultConfig {ndk {abiFilters "armeabi-v7a", "arm64-v8a"}}
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera.autofocus" />
android:hardwareAccelerated="false"を設定しないでください。ハードウェアアクセラレーションをオフにすると、相手のビデオストリームがレンダリングできなくなります。targetSdkVersionが31の場合、または対象デバイスがAndroid 12以降のシステムバージョンに関連する場合、公式ではコード内でandroid.permission.BLUETOOTH_CONNECT権限を動的に申請する必要があり、Bluetooth機能を正常に使用するために必要です。詳細はAndroid公式説明をご参照ください。-keep class com.tencent.** { *; }

// RTC Engine SDKインスタンスを作成(シングルトンパターン)TRTCCloud mTRTCCloud = TRTCCloud.sharedInstance(context);// イベントリスナーを設定mTRTCCloud.setListener(trtcSdkListener);// SDKからの各種イベント通知(例:エラーコード、警告コード、オーディオ・ビデオの状態パラメータなど)private TRTCCloudListener trtcSdkListener = new TRTCCloudListener() {@Overridepublic void onError(int errCode, String errMsg, Bundle extraInfo) {Log.d(TAG, errCode + errMsg);}@Overridepublic void onWarning(int warningCode, String warningMsg, Bundle extraInfo) {Log.d(TAG, warningCode + warningMsg);}};// イベントリスナーを削除mTRTCCloud.setListener(null);// TRTC SDKインスタンスを破棄(シングルトンパターン)TRTCCloud.destroySharedInstance();
rtmp://intl-rtmp.rtc.qq.com/push/ルーム番号?sdkappid=アプリケーション&userid=ユーザー名&usersig=署名
rtmp://intl-rtmp.rtc.qq.com/push/hello-string-room?sdkappid=140**66&userid=rtmp2&usersig=eJw1jdERBZ8qKGRj8Yp-wVbvmGMVZqS7w-mMDQL

roomIdと文字列型のstrRoomIdの二種類があります。二種類のルームは相互接続されません。ルーム番号のタイプを統一することをお勧めします。TRTC_APP_SCENE_VIDEOCALLを使用することをお勧めします。これにより遅延が低減されます。
public void enterRoomByAudience(String roomId, String userId) {TRTCCloudDef.TRTCParams params = new TRTCCloudDef.TRTCParams();// 文字列ルーム番号を例としますparams.strRoomId = roomId;params.userId = userId;// 業務バックエンドから取得したUserSigparams.userSig = getUserSig(userId);// お客様のSDKAppIDに置き換えてくださいparams.sdkAppId = SDKAppID;mTRTCCloud.enterRoom(params, TRTCCloudDef.TRTC_APP_SCENE_VIDEOCALL);}// 入室結果イベントのコールバック@Overridepublic void onEnterRoom(long result) {if (result > 0) {// result は入室にかかった時間(ミリ秒)を表しますLog.d(TAG, "Enter room succeed");} else {// result は入室失敗時のエラーコードを表しますLog.d(TAG, "Enter room failed");}}
@Overridepublic void onUserAudioAvailable(String userId, boolean available) {// あるリモートユーザーが自身のオーディオを公開/キャンセルしました// 自動サブスクリプションモードでは、何も操作する必要はなく、SDKが自動的にリモートユーザーのオーディオを再生します}@Overridepublic void onUserVideoAvailable(String userId, boolean available) {// あるリモートユーザーがメインストリームのビデオ画面を公開/キャンセルしましたif (available) {// リモートユーザーのビデオストリームをサブスクライブし、ビデオレンダリングコントロールをバインドしますmTRTCCloud.startRemoteView(userId, TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG, TXCloudVideoView view);} else {// リモートユーザーのビデオストリームのサブスクリプションを停止し、レンダリングコントロールを解放しますmTRTCCloud.stopRemoteView(userId, TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG);}}
TRTCCloudDef.TRTCRenderParams params = new TRTCCloudDef.TRTCRenderParams();params.mirrorType = TRTCCloudDef.TRTC_VIDEO_MIRROR_TYPE_AUTO; // 画面ミラーモードparams.fillMode = TRTCCloudDef.TRTC_VIDEO_RENDER_MODE_FILL; // 画面フィルモードparams.rotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; // 画面回転角度// リモート画面のレンダリングモードを設定mTRTCCloud.setRemoteRenderParams(userId, TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG, params)
public void exitRoom() {mTRTCCloud.stopLocalAudio();mTRTCCloud.stopLocalPreview();mTRTCCloud.exitRoom();}// 退室イベントのコールバック@Overridepublic void onExitRoom(int reason) {if (reason == 0) {Log.d(TAG, "exitRoomを能動的に呼び出して退室");} else if (reason == 1) {Log.d(TAG, "サーバーによって現在のルームから退出させられました");} else if (reason == 2) {Log.d(TAG, "現在のルーム全体が解散されました");}}
onExitRoomコールバック通知をお客様に送信します。enterRoomを再度呼び出すか、他のオーディオ・ビデオSDKに切り替える場合は、onExitRoomコールバックが発生するまで待ってから関連操作を実行してください。そうしないと、カメラやマイクデバイスが強制的に占有されるなどの異常な問題が発生する可能性があります。[DismissRoom] と文字列型ルーム解散API DismissRoomByStrRoomId を提供しています。サーバー側のルーム解散インターフェースを呼び出すことで、ルーム内のすべてのユーザーをルームから退室させ、ルームを解散することができます。exitRoomを呼び出して退室する必要があります。ルーム内のすべての配信者と視聴者が退室すると、RTC Engineのルームライフサイクルルールに従ってルームは自動的に解散されます。詳細はRTC Engine 退室をご参照ください。列挙 | 値 | 説明 |
ERR_TRTC_INVALID_USER_SIG | -3320 | 入室パラメータ UserSig が正しくありません。 TRTCParams.userSig が空でないか確認してください。 |
ERR_TRTC_USER_SIG_CHECK_FAILED | -100018 | UserSig の検証に失敗しました。パラメータ TRTCParams.userSig が正しく入力されているか、または有効期限が切れていないか確認してください。 |
列挙 | 値 | 説明 |
ERR_TRTC_CONNECT_SERVER_TIMEOUT | -3308 | 入室リクエストがタイムアウトしました。ネットワーク接続が切断されているか、VPNが有効になっているか確認してください。4Gに切り替えてテストすることもできます。 |
ERR_TRTC_INVALID_SDK_APPID | -3317 | 入室パラメータ sdkAppId が正しくありません。 TRTCParams.sdkAppId が空でないか確認してください |
ERR_TRTC_INVALID_ROOM_ID | -3318 | 入室パラメータ roomId が正しくありません。 TRTCParams.roomId または TRTCParams.strRoomId が空でないか確認してください。roomId と strRoomId は混在して使用できませんのでご注意ください。 |
ERR_TRTC_INVALID_USER_ID | -3319 | 入室パラメータ userId は が正しくありません。 TRTCParams.userId が空でないか確認してください。 |
ERR_TRTC_ENTER_ROOM_REFUSED | -3340 | 入室リクエストが拒否されました。 enterRoom を連続して呼び出して同じIdのルームに入ろうとしていないか確認してください。 |
列挙 | 値 | 説明 |
ERR_CAMERA_START_FAIL | -1301 | カメラの起動に失敗しました。例:WindowsまたはMacデバイスではカメラの設定プログラム(ドライバー)に異常がある場合があります。デバイスを無効化して再有効化する、またはマシンを再起動する、または設定プログラムを更新してください。 |
ERR_MIC_START_FAIL | -1302 | マイクの起動に失敗しました。例:WindowsまたはMacデバイスでは、マイクの設定プログラム(ドライバー)に異常がある場合があります。デバイスを無効化して再有効化する、またはマシンを再起動する、または設定プログラムを更新してください。 |
ERR_CAMERA_NOT_AUTHORIZED | -1314 | カメラデバイスが未承認です。通常はモバイルデバイスで発生し、権限がユーザーによって拒否された可能性があります。 |
ERR_MIC_NOT_AUTHORIZED | -1317 | マイクデバイスが未承認です。通常はモバイルデバイスで発生し、権限がユーザーによって拒否された可能性があります。 |
ERR_CAMERA_OCCUPY | -1316 | カメラ現在使用中です。他のカメラの使用を試みてください。 |
ERR_MIC_OCCUPY | -1319 | マイクが使用中です。例えば、モバイルデバイスが通話中の場合、マイク起動に失敗します。 |

フィードバック