ここでは主に、TRTCルームへの入室方法についてご説明します。オーディオビデオルームに入室すると、ユーザーはルーム内の他のユーザーのオーディオビデオストリーミングをサブスクリプションしたり、ルーム内の他のユーザーに自分のオーディオビデオストリーミングを公開したりすることができます。
ドキュメントSDKのプロジェクトへのインポートを参照し、SDKのインポートを完了してください。
import TRTCCloud from 'trtc-electron-sdk';
const rtcCloud = new TRTCCloud();
イベントコールバックインターフェースを設定することで、SDKの実行中に発生するエラー情報、アラート情報、トラフィック統計情報、ネットワーク品質情報および各種オーディオビデオイベントを監視することができます。
function onError(errCode, errMsg) {
// errorCodeについては、https://www.tencentcloud.com/document/product/647/32257?from_cn_redirect=1#.E9.94.99.E8.AF.AF.E7.A0.81.E8.A1.A8をご参照ください
console.log(errCode, errMsg);
}
function onWarning(warningCode, warningMsg) {
// warningCodeについては、https://www.tencentcloud.com/document/product/647/32257?from_cn_redirect=1#.E8.AD.A6.E5.91.8A.E7.A0.81.E8.A1.A8をご参照ください
console.log(warningCode, warningMsg);
}
rtcCloud.on('onError', onError);
rtcCloud.on('onWarning', onWarning);
enterRoomインターフェースを呼び出す際には、TRTCParams
とTRTCAppScene
という2つのキーパラメータを入力する必要があります。次に詳しくご説明します。
このパラメータは、お客様のユースケース、すなわちオンラインライブストリーミングまたはリアルタイム通話を指定するために使用します。
TRTCAppSceneVideoCall
と音声通話用のTRTCAppSceneAudioCall
という2つのオプションがあります。このモードは、1対1のオーディオビデオ通話や参加者300人以内のオンラインミーティングに適しています。TRTCAppSceneLIVE
と音声ライブストリーミング用のTRTCAppSceneVoiceChatRoom
という2つのオプションがあります。このモードは、最大10万人規模のライブストリーミングシナリオに適していますが、次にご紹介するTRTCParamsパラメータにロール(role)**というフィールドを指定する必要があります。これは、ルーム内のユーザーがキャスター(anchor)と視聴者(audience)**という2つのロールに区別されることを意味します。TRTCParamsはたくさんのフィールドから構成されていますが、通常は、以下のフィールドについてのみ入力する必要があります。
パラメータ名 | フィールドの意味 | 補足説明 | データタイプ | 入力例 |
---|---|---|---|---|
SDKAppID | アプリケーションID | TRTCコンソールでこのSDKAppIDを確認できます。確認できない場合は、「アプリケーションの作成」ボタンをクリックして、新しいアプリを作成します。 | 数字 | 1400000123 |
userId | ユーザーID | ユーザー名には、大文字と小文字のアルファベット(a-z、A-Z)、数字(0-9)およびアンダースコアとハイフンのみが使用可能です。TRTCは、同じuserIdによる2つの異なるデバイスの同時入室をサポートしていません。同時に入室した場合は相互に干渉します。 | 文字列 | 「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 という2つのライブストリーミングシナリオに指定されている場合のみ、このフィールドを指定する必要があります。 |
列挙値 | TRTCRoleAnchorまたはTRTCRoleAudience |
注意:
- TRTCは、同じuserIdによる2つの異なるデバイスの同時入室をサポートしていません。同時に入室した場合は相互に干渉します。
- 各端末のユースケースappSceneについては、統一する必要があります。統一していない場合、想定外のトラブルが生じる恐れがあります。
ステップ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);
イベントコールバック:
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://www.tencentcloud.com/document/product/647/35124をご参照ください
console.log('Enter room failed');
}
}
rtcCloud.on('onEnterRoom', onEnterRoom);
この記事はお役に立ちましたか?