このドキュメントでは、主にTRTCルームに入る方法を紹介します。オーディオビデオルームに入った後でのみ、ユーザーはルーム内の他のユーザーのオーディオビデオストリームをサブスクリプションしたり、自分のオーディオビデオストリームをルーム内の他のユーザーに公開したりできます。
SDKのプロジェクトへのインポートを参照して、SDKをインポートします。
各プラットフォームの初期化インターフェースを呼び出して、TRTCのオブジェクトインスタンスを作成します。
// SDKインスタンス(シングルトンモード)を作成し、イベント監視装置(リスナー)を設定します
// Create trtc instance(singleton) and set up event listeners
mCloud = TRTCCloud.sharedInstance(getApplicationContext());
mCloud.setListener(this);
イベントコールバックインターフェイスを設定することにより、SDKの実行中に発生するエラー情報、警告情報、トラフィック統計情報、ネットワーク品質情報、およびさまざまなオーディオビデオイベントを監視できます。
独自のクラスに**TRTCCloudListener**を継承させ、onError関数をオーバーロードし、最後に** setListener **インターフェイスを介してthisポインターをSDKに設定して、現在のクラスでSDKからのコールバックイベントを監視できます。
<dx-code-holder data-codeindex="0"></dx-code-holder>
enterRoomインターフェースを呼び出すとき、2つの主要なパラメーター、つまりTRTCParams
とTRTCAppScene
を入力してください。これらについては、以下で詳しく説明します:
このパラメータは、ユースケース、つまりオンラインライブストリーミングまたはリアルタイム通話を指定するために使用されます:
リアルタイム通話:TRTCAppSceneVideoCall
とTRTCAppSceneAudioCall
の2つのオプションがあり、それぞれビデオ通話と音声通話です。このモードは、1対1のオーディオビデオ通話、または参加者が300人未満のオンライン会議に適しています。
オンラインライブストリーミング:TRTCAppSceneLIVE
とTRTCAppSceneVoiceChatRoom
の2つのオプションがあり、それぞれビデオライブストリーミングとオーディオライブストリーミングです。このモードは、10万人未満のオンラインライブストリーミングシナリオに適していますが、以下に説明するTRTCParamsパラメータでロール(role)のフィールドを指定する必要があります。つまり、ルーム内のユーザーは、ホスト(anchor)**と視聴者(audience)**の2つの異なる役割に分けられます。
TRTCParamsは多くのフィールドで構成されていますが、通常は次のフィールドへの入力のみを気にしてください:
パラメータ名 | フィールドの意味 | 補足説明 | データのタイプ | 記入例 |
---|---|---|---|---|
SDKAppID | アプリケーションID | このSDKAppIDはTencent Real-Time Communicationコンソールにあります。見つからない場合は、「アプリケーションの作成」ボタンをクリックして新しいアプリケーションを作成してください。 | 数字 | 1400000123 |
userId | ユーザーID | すなわちユーザー名です。大文字と小文字の英字(a-z、A-Z)、数字(0-9)、アンダースコア、およびハイフンのみが許可されます。TRTCは、2つの異なるデバイスで同時に入室する同じuserIdをサポートしていないことに注意してください。そうでない場合には、互いに干渉します。 | 文字列 | 「denny」または「123321」 |
userSig | 入室認証証明書 | SDKAppIDとuserIdを使用してuserSigを計算できます。計算方法については、UserSigの計算と使用をご参照ください 。 | 文字列 | eJyrVareCeYrSy1SslI... |
roomId | ルーム番号 | 数値タイプのルーム番号。strRoomIdとroomIdを混在させることはできないため、文字列タイプのルーム番号を使用する場合は、roomIdフィールドの代わりにstrRoomIdフィールドを使用することに注意してください。 | 数字 | 29834 |
strRoomId | ルーム番号 | 文字列タイプのルーム番号。strRoomIdとroomIdを混在させることはできません。「123」と123は、TRTCバックグラウンドサービスの同じ部屋ではありません。。 | 数字 | 29834 |
role | ロール | 「キャスター」と「視聴者」の2つの役割に分かれています。このフィールドは、TRTCAppSceneがTRTCAppSceneLIVE またはTRTCAppSceneVoiceChatRoom として指定されている場合にのみ指定してください。 |
列挙値 | TRTCRoleAnchorまたはTRTCRoleAudience |
注意:
- TRTCは、2つの異なるデバイスで同時に入室する同じuserIdをサポートしません。そうでない場合には、互いに干渉します。
- 各端末のユースケースappSceneについては、統一してください。統一していない場合、想定外のトラブルが生じる恐れがあります。
手順4の2つのパラメーター(TRTCAppSceneとTRTCParams)を準備した後、enterRoomインターフェース関数を呼び出して入室できます。
mCloud = TRTCCloud.sharedInstance(getApplicationContext());
mCloud.setListener(mTRTCCloudListener);
// TRTC入室パラメータを組み立てるには、TRTCParamsの各フィールドを独自のパラメータに置き換えてください
// Please replace each field in TRTCParams with your own parameters
TRTCCloudDef.TRTCParams param = new TRTCCloudDef.TRTCParams();
params.sdkAppId = 1400000123; // Please replace with your own SDKAppID
params.userId = "denny"; // Please replace with your own userid
params.roomId = 123321; // Please replace with your own room number
params.userSig = "xxx"; // Please replace with your own userSig
params.role = TRTCCloudDef.TRTCRoleAnchor;
// 「オンラインライブストリーミング」のシーンの場合、ユースケースをTRTC_APP_SCENE_LIVEに設定してください
// If your application scenario is a video call between several people, please use "TRTC_APP_SCENE_LIVE"
mCloud.enterRoom(param, TRTCCloudDef.TRTC_APP_SCENE_LIVE);
イベントコールバック
正常に成功したら、SDKはonEnterRoom (result)イベントをコールバックします。ここで、resultは、入室にかかった時間をミリ秒(ms)の単位で表す0より大きい値になります。
入室に失敗したら、SDKはonEnterRoom(result)イベントもコールバックしますが、パラメータresult
は負の数になり、その値は入室失敗のエラーコードです。
// SDKのonEnterRoomイベントを監視し、入室に成功したかどうかを確認します
// Listen to the onEnterRoom event of the SDK and learn whether the room is successfully entered
@Override
public void onEnterRoom(long result) {
if (result > 0) {
Log.d(TAG, "Enter room succeed");
}else{
Log.d(TAG, "Enter room failed");
}
}
この記事はお役に立ちましたか?