3. ルームに入る
ここでは主に、TRTCルームへの入室方法についてご説明します。オーディオビデオルームに入室すると、ユーザーはルーム内の他のユーザーのオーディオビデオストリーミングをサブスクリプションしたり、ルーム内の他のユーザーに自分のオーディオビデオストリーミングを公開したりすることができます。
呼び出しガイド
ステップ1:SDKのインポート
ステップ2: SDKインスタンスの作成
import TRTCCloud from 'trtc-electron-sdk';const rtcCloud = new TRTCCloud();
ステップ3:SDKイベントの監視
イベントコールバックインターフェースを設定することで、SDKの実行中に発生するエラー情報、アラート情報、トラフィック統計情報、ネットワーク品質情報および各種オーディオビデオイベントを監視することができます。
function onError(errCode, errMsg) {// errorCodeについては、https://cloud.tencent.com/document/product/647/32257#.E9.94.99.E8.AF.AF.E7.A0.81.E8.A1.A8をご参照くださいconsole.log(errCode, errMsg);}function onWarning(warningCode, warningMsg) {// warningCodeについては、https://cloud.tencent.com/document/product/647/32257#.E8.AD.A6.E5.91.8A.E7.A0.81.E8.A1.A8をご参照くださいconsole.log(warningCode, warningMsg);}rtcCloud.on('onError', onError);rtcCloud.on('onWarning', onWarning);
ステップ4:入室パラメータTRTCParamsの準備
enterRoomインターフェースを呼び出す際には、
TRTCParams
とTRTCAppScene
という2つのキーパラメータを入力する必要があります。次に詳しくご説明します。パラメータ1:TRTCAppScene
このパラメータは、お客様のユースケース、すなわちオンラインライブストリーミングまたはリアルタイム通話を指定するために使用します。
リアルタイム通話:ビデオ通話用の
TRTCAppSceneVideoCall
と音声通話用のTRTCAppSceneAudioCall
という2つのオプションがあります。このモードは、1対1のオーディオビデオ通話や参加者300人以内のオンラインミーティングに適しています。オンラインライブストリーミング:ビデオライブストリーミング用の
TRTCAppSceneLIVE
と音声ライブストリーミング用のTRTCAppSceneVoiceChatRoom
という2つのオプションがあります。このモードは、最大10万人規模のライブストリーミングシナリオに適していますが、次にご紹介するTRTCParamsパラメータに**ロール(role)というフィールドを指定する必要があります。これは、ルーム内のユーザーがキャスター(anchor)と視聴者(audience)**という2つのロールに区別されることを意味します。パラメータ2:TRTCParams
TRTCParamsはたくさんのフィールドから構成されていますが、通常は、以下のフィールドについてのみ入力する必要があります。
パラメータ名 | フィールドの意味 | 補足説明 | データタイプ | 入力例 |
SDKAppID | アプリケーションID | 数字 | 1400000123 | |
userId | ユーザーID | ユーザー名には、大文字と小文字のアルファベット(a-z、A-Z)、数字(0-9)およびアンダースコアとハイフンのみが使用可能です。TRTCは、同じuserIdによる2つの異なるデバイスの同時入室をサポートしていません。同時に入室した場合は相互に干渉します。 | 文字列 | 「denny」または「123321」 |
userSig | 入室認証証書 | 文字列 | eJyrVareCeYrSy1SslI... | |
roomId | ルームナンバー | 数字タイプのルームナンバーです。文字列タイプのルームナンバーを使用したい場合は、strRoomIdとroomIdは混在して使用できないため、roomIdフィールドではなく、strRoomIdフィールドを使用するようご注意ください。 | 数字 | 29834 |
strRoomId | ルームナンバー | 文字列タイプのルームナンバーです。strRoomIdとroomIdは混在して使用できないので、ご注意ください。「123」と123は、TRTCバックエンドサービスでは同じルームになりません。 | 数字 | 29834 |
role | ロール | 「キャスター」と「視聴者」という2つのロールがあります。TRTCAppSceneが TRTCAppSceneLIVE またはTRTCAppSceneVoiceChatRoom という2つのライブストリーミングシナリオに指定されている場合のみ、このフィールドを指定する必要があります。 | 列挙値 | TRTCRoleAnchorまたはTRTCRoleAudience |
ご注意:
TRTCは、同じuserIdによる2つの異なるデバイスの同時入室をサポートしていません。同時に入室した場合は相互に干渉します。
各端末のユースケースappSceneについては、統一する必要があります。統一していない場合、想定外のトラブルが生じる恐れがあります。
ステップ5:入室(enterRoom)
ステップ4で2つのパラメータ(TRTCAppSceneとTRTCParams)を準備すると、enterRoomインターフェース関数を呼び出して入室することができます。
import { TRTCParams, TRTCRoleType, TRTCAppScene } from 'trtc-electron-sdk';const param = new TRTCParams();param.sdkAppId = 1400000123;param.userId = "denny";param.roomId = 123321;param.userSig = "xxx";param.role = TRTCRoleType.TRTCRoleAnchor;// シナリオが「オンラインライブストリーミング」の場合、ユースケースをTRTC_APP_SCENE_LIVEに設定してくださいrtcCloud.enterRoom(param, TRTCAppScene.TRTCAppSceneLIVE);
イベントコールバック:
入室に成功すると、SDKはonEnterRoom(result)イベントをコールバックします。そのうちresultは0以上の値で、入室にかかった時間をミリ秒(ms)単位で表します。
入室に失敗した場合、SDKはonEnterRoom(result)イベントをコールバックしますが、パラメータ
result
は負の数となり、その値はルームエントリーに失敗したときのエラーコードとなります。function onEnterRoom(result) {// onEnterRoomについては、https://web.sdk.qcloud.com/trtc/electron/doc/zh-cn/trtc_electron_sdk/TRTCCallback.html#event:onEnterRoomをご参照くださいif (result > 0) {console.log('Enter room succeed');} else {// 入室エラーコード https://intl.cloud.tencent.com/document/product/647/35124をご参照くださいconsole.log('Enter room failed');}}rtcCloud.on('onEnterRoom', onEnterRoom);