TRTCMeeting API(Flutter)
TRTCMeetingは、Tencent CloudのTRTCおよびIMサービスを基に組み合わせたコンポーネントで、以下の機能をサポートしています。
キャスターがミーティングルームを作成し、参加者はルームナンバーを入力した後にミーティングに参加します。
参加者の間で画面共有を行います。
各種のテキストメッセージとカスタムメッセージの送信をサポートします。
説明:
TUIKitシリーズコンポーネントはTencent CloudのTRTCとIMという2つの基本的なPaaSサービスを同時に使用し、TRTCをアクティブにした後、IMサービスを同期的にアクティブにすることができます。IMサービスの課金ルールの詳細については、Instant Messagingの料金説明をご参照ください。TRTCをアクティブにすると、デフォルトでは、100DAUまでサポートするIM SDK体験版もアクティブになります。
TRTCMeetingは、1つのオープンソースのClassであり、Tencent Cloudの2つのクローズドソースのSDKに依存しています。具体的な実現プロセスは、多人数オーディオビデオルーム(Flutter)をご参照ください。
TRTC SDK: TRTC SDK を低遅延のビデオミーティングのコンポーネントとして使用します。
IM SDK:IM SDKのMeetingRoomを利用して、ミーティング中のチャットルームの機能を実現します。
TRTCMeeting API概要
SDK基本インターフェース
API | 説明 |
シングルトンオブジェクトを取得します。 | |
シングルトンオブジェクトを破棄します。 | |
イベント監視を設定します。 | |
イベント監視を破棄します。 | |
ログイン。 | |
ログアウト。 | |
個人情報を修正します。 |
ミーティングルームに関するインターフェース
API | 説明 |
ルームの作成(キャスターが呼び出し)。 | |
ルームの破棄(キャスターが呼び出し)。 | |
入室(参加者が呼び出し)。 | |
退室(参加者が呼び出し)。 | |
ルーム内の全メンバーのリストを取得します。enterMeeting()成功後に呼び出しが有効となります。 | |
ルーム内の指定メンバーの詳細情報を取得します。enterMeeting()成功後に呼び出しが有効となります。 |
リモートユーザーに関するインターフェース
API | 説明 |
指定メンバーのリモートビデオ画面を再生します。 | |
指定メンバーのリモートビデオ画面の再生を停止します。 | |
指定メンバーのリモート画像のレンダリングパラメータを設定します。 | |
指定メンバーのリモート音声をミュート/ミュート取り消しにします。 | |
全メンバーのリモート音声をミュート/ミュート取り消しにします。 | |
指定メンバーのリモートビデオを一時停止/再開します。 | |
全メンバーのリモートビデオストリームを一時停止/再開します。 |
ローカルのビデオ操作インターフェース
API | 説明 |
ローカルビデオのプレビュー画面を立ち上げます。 | |
ローカルのビデオキャプチャおよびプレビューを停止します。 | |
フロント/リアカメラを切り替えます。 | |
ビデオエンコーダ関連パラメータを設定します。 | |
ローカル画面のミラーモードのプレビューを設定します。 |
ローカルのオーディオ操作インターフェース
API | 説明 |
マイクの集音開始。 | |
マイクの集音停止。 | |
ローカル音声のミュート起動/停止。 | |
スピーカーまたはヘッドホン起動の設定。 | |
マイクの集音音量設定。 | |
再生音量の設定。 | |
録音の開始。 | |
録音の停止。 | |
音声レベルリマインダを有効にします。 |
スクリーンキャプチャのインターフェース
API | 説明 |
画面共有を開始。 | |
画面キャプチャの停止。 | |
スクリーンキャプチャの一時停止。 | |
スクリーンキャプチャの再開。 |
管理オブジェクト取得に関するインターフェース
API | 説明 |
メッセージ送信関連インターフェース
API | 説明 |
ミーティング中にテキストメッセージをブロードキャストします。通常、チャットに使用します。 | |
カスタマイズしたテキストメッセージを送信します。 |
TRTCLiveRoomDelegate API概要
一般的なイベントコールバック
API | 説明 |
エラーのコールバック。 | |
警告のコールバック。 | |
他のユーザーが同じアカウントでログインすると、キックアウトされてオフラインになります。 |
ミーティングルームのイベントコールバック
API | 説明 |
ミーティングルームが破棄された時のコールバック。 | |
ネットワーク状態のコールバック。 | |
ユーザー通話音量のコールバック。 |
参加者入退室のイベントコールバック
API | 説明 |
ローカルの入室のコールバック。 | |
ローカルの退室のコールバック。 | |
新しい参加者の入室のコールバック。 | |
参加者の退出のコールバック。 |
参加者の音声・ビデオのイベントコールバック
API | 説明 |
参加者がマイクを起動/停止したときのコールバック。 | |
参加者がカメラを起動/停止したときのコールバック。 | |
参加者がサブチャンネル画面を起動/停止したときのコールバック。 |
メッセージイベントのコールバック
API | 説明 |
テキストメッセージ受信のコールバック。 | |
カスタムメッセージ受信のコールバック。 |
スクリーンキャプチャのイベントコールバック
API | 説明 |
スクリーンキャプチャ開始のコールバック。 | |
スクリーンキャプチャ一時停止のコールバック。 | |
スクリーンキャプチャ再開のコールバック。 | |
スクリーンキャプチャ停止のコールバック。 |
SDK基本インターフェース
sharedInstance
TRTCMeetingシングルトンオブジェクトを取得します。
static Future<TRTCMeeting> sharedInstance();
destroySharedInstance
TRTCMeetingシングルトンオブジェクトを破棄します。
static void destroySharedInstance();
説明:
registerListener
void registerListener(MeetingListenerFunc func);
説明:
funcはTRTCMeetingのプロキシコールバックです。
unRegisterListener
イベント監視を破棄します。
void unRegisterListener(MeetingListenerFunc func);
login
ログイン。
Future<ActionCallback> login(int sdkAppId, String userId, String userSig);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
sdkAppId | int | |
userId | String | 現在のユーザーのID。文字列タイプ。アルファベット(a-z および A-Z)、数字(0-9)、ハイフン(-)、アンダーバー(_)のみ使用できます。 |
userSig | String |
logout
ログアウト。
Future<ActionCallback> logout();
setSelfProfile
個人情報の修正。
Future<ActionCallback> setSelfProfile(String userName, String avatarURL);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userName | String | ユーザーニックネーム。 |
avatarURL | String | ユーザープロフィール画像のアドレス。 |
ミーティングルーム関連インターフェース
createMeeting
ミーティングの作成(キャスターの呼び出し)。
Future<ActionCallback> createMeeting(int roomId);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
roomId | int | ミーティングルームID。ご自身でアサインし、一括管理してください。 |
キャスターの通常の呼び出しフローは以下のとおりです:
1. 【キャスター】
createMeeting()
を呼び出し、roomId
を渡してミーティングを作成します。ミーティングルーム作成の成功の有無がActionCallback
によってキャスターに通知されます。 2. 【キャスター】
startCameraPreview()
を呼び出し、カメラのプレビューを起動します。この時美顔パラメータを調整できます。3. 【キャスター】
startMicrophone()
を呼び出し、マイクキャプチャを起動します。destroyMeeting
ミーティングルームを破棄します(キャスターが呼び出し)。キャスターは、ミーティング作成後、この関数を呼び出してミーティングを破棄できます。
Future<ActionCallback> destroyMeeting(int roomId);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
roomId | int | ミーティングルームID。ご自身でアサインし、一括管理してください。 |
enterMeeting
ミーティングルームに参加します(参加者が呼び出し)。
Future<ActionCallback> enterMeeting(int roomId);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
roomId | int | ミーティングルームID。 |
参加者がミーティングに参加する通常の呼び出しフローは以下のとおりです:
1. 【参加者】
enterMeeting()
を呼び出し、roomId
を渡せばミーティングルームに入れます。2. 【参加者】
startCameraPreview()
を呼び出して、カメラのプレビューを起動し、startMicrophone()
を呼び出し、マイクキャプチャを起動します。3. 【参加者】
onUserVideoAvailable
のイベントを受信します。startRemoteView()
を呼び出し、メンバーのuserIdを渡して再生を開始しますleaveMeeting
ミーティングルームから退出します(参加者が呼び出し)。
Future<ActionCallback> leaveMeeting();
getUserInfoList
ルーム内の全メンバーのリストを取得します。enterMeeting()成功後に呼び出しが有効となります。
Future<UserListCallback> getUserInfoList(List<String> userIdList);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userIdList | List<String> | 取得する必要があるuserId リスト。 |
getUserInfo
ルーム内の指定メンバーの詳細情報を取得します。enterMeeting()成功後に呼び出しが有効となります。
Future<UserListCallback> getUserInfo(String userId);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | 指定メンバーのID。 |
リモートユーザーに関するインターフェース
startRemoteView
指定メンバーのリモートビデオ画面を再生します。
Future<void> startRemoteView(String userId, int streamType, int viewId);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | 指定メンバーのID。 |
streamType | int | |
viewId | int | TRTCCloudVideoViewが発行するviewId。 |
stopRemoteView
指定メンバーのリモートビデオ画面の再生を停止します。
Future<void> stopRemoteView(String userId, int streamType);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | 指定メンバーのID。 |
streamType | int |
setRemoteViewParam
指定メンバーのリモート画像のレンダリングパラメータを設定します。
Future<void> setRemoteViewParam(String userId, int streamType,{int fillMode, int rotation, int mirrorType});
パラメータは下表に示すとおりです:
muteRemoteAudio
指定メンバーのリモート音声をミュート/ミュート取り消します。
Future<void> muteRemoteAudio(String userId, bool mute);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | 指定メンバーのID。 |
mute | boolean | true:ミュート、false:ミュート停止。 |
muteAllRemoteAudio
全メンバーのリモート音声をミュート/ミュート取り消します。
Future<void> muteAllRemoteAudio(bool mute);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
mute | boolean | true:ミュート、false:ミュート停止。 |
muteRemoteVideoStream
指定メンバーのリモートビデオを一時停止/再開します。
Future<void> muteRemoteVideoStream(String userId, bool mute);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | 指定メンバーのID。 |
mute | boolean | true:一時停止、false:再開。 |
muteAllRemoteVideoStream
全メンバーのリモートビデオストリームを一時停止/再開します。
Future<void> muteAllRemoteVideoStream(bool mute);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
mute | boolean | true:一時停止、false:再開。 |
ローカルのビデオ操作インターフェース
startCameraPreview
ローカルビデオのプレビュー画面を立ち上げます。
Future<void> startCameraPreview(bool isFront, int viewId);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
isFront | boolean | true:フロントカメラ、false:リアカメラ。 |
viewId | int | TRTCCloudVideoViewが発行するviewId。 |
stopCameraPreview
ローカルのビデオキャプチャおよびプレビューを停止します。
Future<void> stopCameraPreview();
switchCamera
フロント/リアカメラを切り替えます。
Future<void> switchCamera(bool isFront);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
isFront | boolean | true:フロントカメラ、false:リアカメラ。 |
setVideoEncoderParam
ビデオエンコーダ関連パラメータを設定します。
Future<void> setVideoEncoderParam({int videoFps,int videoBitrate,int videoResolution,int videoResolutionMode,});
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
videoFps | int | ビデオキャプチャのフレームレート。 |
videoBitrate | int | ビットレート。SDKは目標ビットレートに応じてエンコードを行い、ネットワークの状態が良くない場合のみ、ビデオビットレートを動的に引き下げます。 |
videoResolution | int | ビデオ解像度。 |
videoResolutionMode | int | 解像度モード。 |
説明:
setLocalViewMirror
ローカル画面のミラーモードのプレビューを設定します。
Future<void> setLocalViewMirror(bool isMirror);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
isMirror | boolean | イメージプレビューモードの起動の有無。true:オン、false:オフ。 |
ローカル音声操作のインターフェース
startMicrophone
マイクの集音開始。
Future<void> startMicrophone({int quality});
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
quality | int |
stopMicrophone
マイクの集音停止。
Future<void> stopMicrophone();
muteLocalAudio
ローカル音声のミュート起動/停止。
Future<void> muteLocalAudio(bool mute);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
mute | boolean | true:ミュート、false:ミュート取り消し。 |
setSpeaker
スピーカーまたはヘッドホンの起動設定。
Future<void> setSpeaker(bool useSpeaker);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
useSpeaker | boolean | true:スピーカー、false:ヘッドホン。 |
setAudioCaptureVolume
マイクの集音音量設定。
Future<void> setAudioCaptureVolume(int volume);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
volume | int | 集音音量、値:0 - 100、デフォルト値:100。 |
setAudioPlayoutVolume
再生音量の設定。
Future<void> setAudioPlayoutVolume(int volume);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
volume | int | 再生音量、値:0 - 100、デフォルト値:100。 |
startAudioRecording
録音の開始。
Future<int?> startAudioRecording(String filePath);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
filePath | String | 録音ファイルの保存パス。このパスはユーザーが自身で指定する必要があります。パスが存在し、記述できることを確認してください。このパスはファイル名およびフォーマットの拡張子まで正確に示す必要があります。フォーマットの拡張子によって録音ファイルの形式が決まります。現在サポートしている形式はPCM、WAV、AACです。 |
stopAudioRecording
録音の停止。
Future<void> stopAudioRecording();
enableAudioVolumeEvaluation
音量レベルリマインダを有効にします。
Future<void> enableAudioVolumeEvaluation(int intervalMs);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
intervalMs | int | onUserVoiceVolume コールバックをトリガーするインターバルを決定します。単位はms。最小インターバルは100ms。0以下の場合、コールバックは停止します。設定を300msにすることを推奨します。 |
スクリーンキャプチャのインターフェース
startScreenCapture
画面共有を開始。
Future<void> startScreenCapture({int videoFps,int videoBitrate,int videoResolution,int videoResolutionMode,String appGroup,});
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
videoFps | int | ビデオキャプチャのフレームレート。 |
videoBitrate | int | ビットレート。SDKは目標ビットレートに応じてエンコードを行い、ネットワークの状態が良くない場合のみ、ビデオビットレートを動的に引き下げます。 |
videoResolution | int | ビデオ解像度。 |
videoResolutionMode | int | 解像度モード。 |
appGroup | String | このパラメータはiOS端末でのみ有効となり、Android端末の場合、このパラメータを気にする必要はありません。このパラメータはメインAppとBroadcastが共有するApplication Group Identifierです。 |
説明:
stopScreenCapture
画面キャプチャの停止。
Future<void> stopScreenCapture();
pauseScreenCapture
スクリーンキャプチャの一時停止。
Future<void> pauseScreenCapture();
resumeScreenCapture
スクリーンキャプチャの再開。
Future<void> resumeScreenCapture();
管理オブジェクト取得に関するインターフェース
getDeviceManager
getDeviceManager();
getBeautyManager
getBeautyManager();
美顔管理では、次の機能を使用できます。
「美顔のスタイル」、「美白」、「肌色補正(血色・つや感)」、「デカ眼」、「顔痩せ」、「V顔」、「下あご」、「面長補正」、「小鼻」、「キラキラ目」、「白い歯」、「目の弛み除去」、「シワ除去」、「ほうれい線除去」などの美容効果を設定します。
「髪の生え際」、「眼と眼の距離」、「眼角度」、「唇の形」、「鼻翼」、「鼻の位置」、「唇の厚さ」、「顔の形」を調整します。
人の顔のスタンプ(素材)等のダイナミック効果を設定します。
メイクアップを追加します。
ジェスチャー認識を行います。
メッセージ送信関連インターフェース
sendRoomTextMsg
ミーティング中にテキストメッセージをブロードキャストします。通常、チャットに使用します。
Future<ActionCallback> sendRoomTextMsg(String message);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
message | String | テキストメッセージ。 |
sendRoomCustomMsg
カスタマイズしたテキストメッセージを送信します。
Future<ActionCallback> sendRoomCustomMsg(String cmd, String message);
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
cmd | String | コマンドワードです。開発者がカスタマイズするものであり、主にさまざまなメッセージタイプを区別するために使用されます。 |
message | String | テキストメッセージ。 |
TRTCMeetingDelegateイベントコールバック
一般的なイベントコールバック
onError
エラーのコールバック。
説明:
SDKリカバリー不能なエラーは必ず監視し、状況に応じてユーザーに適切なインターフェースプロンプトを表示します。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
errCode | int | エラーコード。 |
errMsg | String | エラー情報。 |
extraInfo | String | 拡張情報フィールド。個別のエラーコードにより問題の特定に役立つ追加情報をもたせることが可能です。 |
onWarning
警告のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
warningCode | int | エラーコード。 |
warningMsg | String | 警告情報。 |
extraInfo | String | 拡張情報フィールド。個別のエラーコードにより問題の特定に役立つ追加情報をもたせることが可能です。 |
onKickedOffline
他のユーザーが同じアカウントでログインすると、キックアウトされてオフラインになります。
ミーティングルームのイベントコールバック
onRoomDestroy
ミーティングルームが破棄された時のコールバック。キャスターの退室時、ルーム内の全ユーザーがこの通知を受信します。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
roomId | String | ミーティングルームID。 |
onNetworkQuality
ネットワーク状態のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
localQuality | TRTCCloudDef.TRTCQuality | アップストリームのネットワーク品質。 |
remoteQuality | List<TRTCCloudDef.TRTCQuality> | ダウンストリームのネットワーク品質。 |
onUserVolumeUpdate
ユーザーの通話音量のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userVolumes | List | 発言中のすべてのルーム参加者の音量。値の範囲:0~100。 |
totalVolume | int | すべてのリモート参加者の総音量。値の範囲:0~100。 |
参加者入退室のイベントコールバック
onEnterRoom
ローカルの入室のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
result | int | 0を上回るときは入室の所要時間(ms)、0未満のときは入室のエラーコードです。 |
onLeaveRoom
ローカルの退室のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
reason | int | ミーティング退出の原因。0:自主的にleaveMeetingを呼び出して退出。1:サーバーによる現在のミーティングからのキックアウト。2:現在のミーティング全体の解散。 |
onUserEnterRoom
新しい参加者の入室のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | 新しい参加者のユーザーID。 |
onUserLeaveRoom
参加者の退出のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | 退出した参加者のユーザーID。 |
参加者の音声・ビデオのイベントコールバック
onUserAudioAvailable
参加者のマイク起動/停止のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | ユーザーID。 |
available | boolean | true:ユーザーがマイクをオンにします。false:ユーザーがマイクをオフにします。 |
onUserVideoAvailable
参加者によるカメラ起動/停止のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | ユーザーID。 |
available | boolean | true:ユーザーがカメラをオンにします。false:ユーザーがカメラをオフにします。 |
onUserSubStreamAvailable
参加者がサブチャンネル画面を起動/停止したときのコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
userId | String | ユーザーID。 |
available | boolean | true:ユーザーがサブチャンネル画面を起動。false:ユーザーがサブチャンネル画面を停止。 |
メッセージイベントのコールバック
onRecvRoomTextMsg
テキストメッセージ受信のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
message | String | テキストメッセージ。 |
sendId | String | 送信者のユーザーID。 |
userAvatar | String | 送信者のユーザープロフィール画像。 |
userName | String | 送信者のユーザーニックネーム。 |
onRecvRoomCustomMsg
カスタムメッセージ受信のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
command | String | コマンドワードです。開発者がカスタマイズするものであり、主にさまざまなメッセージタイプを区別するために使用されます。 |
message | String | テキストメッセージ。 |
sendId | String | 送信者のユーザーID。 |
userAvatar | String | 送信者のユーザープロフィール画像。 |
userName | String | 送信者のユーザーニックネーム。 |
スクリーンキャプチャのイベントコールバック
onScreenCaptureStarted
スクリーンキャプチャ開始のコールバック。
onScreenCapturePaused
スクリーンキャプチャ一時停止のコールバック。
onScreenCaptureResumed
スクリーンキャプチャ再生のコールバック。
onScreenCaptureStoped
スクリーンキャプチャ停止のコールバック。
パラメータは下表に示すとおりです:
パラメータ | タイプ | 意味 |
reason | int | 停止の理由。 0:ユーザーの自発的な停止。 1:スクリーンウィンドウが閉じられたことによるによる停止。 |