TRTCLiveRoomは、Tencent CloudのTencent Real-Time Communication(TRTC)およびIMサービスを基に組み合わせたコンポーネントで、以下の機能をサポートしています。
TRTCLiveRoomはオープンソースのClassであり、Tencent Cloudの2つのクローズドソースのSDKに依存しています。具体的な実現プロセスは、 ビデオマイク接続ライブストリーミング(Flutter)をご参照ください。
API | 説明 |
---|---|
sharedInstance | シングルトンオブジェクトを取得します。 |
destroySharedInstance | シングルトンオブジェクトを破棄します。 |
registerListener | イベントコールバックを設定します。 |
unRegisterListener | イベントコールバックのあるスレッドを設定します。 |
login | ログイン。 |
logout | ログアウト。 |
setSelfProfile | 個人情報を修正します。 |
API | 説明 |
---|---|
createRoom | ルームの新規作成(キャスターが呼び出し)。ルームが存在しない場合は、システムが新しいルームを自動的に作成します。 |
destroyRoom | ルームの廃棄(キャスターが呼び出し)。 |
enterRoom | 入室(視聴者が呼び出し)。 |
exitRoom | 退室(視聴者が呼び出し)。 |
getRoomInfos | ルームリストの詳細情報を取得します。 |
getAnchorList | ルーム内の全キャスターのリストを取得します。enterRoom() 成功後に呼び出しが有効となります。 |
getRoomMemberList | ルーム内のすべてのメンバー情報を取得し、enterRoom() 成功後に呼び出しが有効となります。 |
API | 説明 |
---|---|
startCameraPreview | ローカルビデオのプレビュー画面を立ち上げます。 |
stopCameraPreview | ローカルのビデオキャプチャおよびプレビューを停止します。 |
startPublish | ライブストリーミング(プッシュ)を開始します。 |
stopPublish | ライブストリーミング(プッシュ)を停止します。 |
startPlay | リモートのビデオ画面を再生します。普通の視聴とマイク接続のシーンで呼び出すことができます。 |
stopPlay | リモートのビデオ画面のレンダリングを停止します。 |
API | 説明 |
---|---|
requestJoinAnchor | 視聴者がマイク接続をリクエストします。 |
responseJoinAnchor | キャスターがマイク接続のリクエストを処理します。 |
kickoutJoinAnchor | キャスターがマイク接続視聴者をキックアウトします。 |
API | 説明 |
---|---|
requestRoomPK | キャスターがルーム間PKをリクエストします。 |
responseRoomPK | キャスターがルーム間PKのリクエストに応答します。 |
quitRoomPK | ルーム間PKから退出します。 |
API | 説明 |
---|---|
switchCamera | フロント/リアカメラを切り替えます。 |
setMirror | ミラー表示のオン/オフを設定します。 |
muteLocalAudio | ローカルオーディオをミュートにします。 |
muteRemoteAudio | リモートオーディオをミュートにします。 |
muteAllRemoteAudio | 全てのリモートオーディオをミュートにします。 |
API | 説明 |
---|---|
getAudioEffectManager | BGMサウンドエフェクト管理オブジェクト TXAudioEffectManagerの取得。 |
API | 説明 |
---|---|
getBeautyManager | 美顔管理オブジェクト TXBeautyManagerを取得します。 |
API | 説明 |
---|---|
sendRoomTextMsg | ルーム内でのテキストメッセージのブロードキャスト。通常、弾幕によるチャットに使用します。 |
sendRoomCustomMsg | カスタマイズしたテキストメッセージを送信します。 |
API | 説明 |
---|---|
onError | エラーのコールバック。 |
onWarning | 警告のコールバック。 |
onKickedOffline | 他のユーザーが同じアカウントでログインすると、キックアウトされてオフラインになります。 |
API | 説明 |
---|---|
onEnterRoom | ローカルの入室のコールバック。 |
onUserVideoAvailable | リモートユーザーが再生できるビッグストリーム画面が存在するかどうか(一般的にはカメラに用いられる)。 |
onRoomDestroy | ルームが破棄されたときのコールバック。 |
API | 説明 |
---|---|
onAnchorEnter | 新しいキャスターの入室通知を受信します。 |
onAnchorExit | キャスターの退室通知を受信します。 |
onAudienceEnter | 視聴者入室通知の受信。 |
onAudienceExit | 視聴者退室通知の受信。 |
API | 説明 |
---|---|
onRequestJoinAnchor | キャスターが視聴者のマイク接続リクエストを受信した時のコールバック。 |
onAnchorAccepted | キャスターが視聴者のマイク接続リクエストに同意します。 |
onAnchorRejected | キャスターが視聴者のマイク接続リクエストを拒否します。 |
onKickoutJoinAnchor | マイク接続の視聴者がマイク接続からキックアウトされた通知を受信します。 |
API | 説明 |
---|---|
onRequestRoomPK | ルーム間PKのリクエストの通知を受信。 |
onRoomPKAccepted | キャスターがルーム間PKのリクエストに同意します。 |
onRoomPKRejected | キャスターがルーム間PKのリクエストを拒否します。 |
onQuitRoomPK | ルーム間PK中止の通知を受信します。 |
API | 説明 |
---|---|
onRecvRoomTextMsg | テキストメッセージの受信。 |
onRecvRoomCustomMsg | カスタムメッセージの受信。 |
TRTCLiveRoom シングルトンオブジェクトを取得します。
static Future<TRTCLiveRoom> sharedInstance()
TRTCLiveRoom シングルトンオブジェクトを破棄します。
説明:インスタンスを破棄後は、外部にキャッシュされたTRTCLiveRoomインスタンスの再使用ができません。改めて sharedInstance を呼び出して、インスタンスを新規取得する必要があります。
static void destroySharedInstance()
TRTCLiveRoom イベントコールバック。 TRTCLiveRoomDelegate を介してTRTCLiveRoomの各種ステータス通知を受け取ることができます。
void registerListener(VoiceListenerFunc func);
説明:registerListenerは、TRTCLiveRoomのプロキシコールバックです。
コンポーネントイベントの監視インターフェースを削除します。
void unRegisterListener(VoiceListenerFunc func);
ログイン。
Future<ActionCallback> login(
int sdkAppId, String userId, String userSig, TRTCLiveRoomConfig config);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
sdkAppId | int | TRTCコンソール >【アプリケーション管理】> アプリケーション情報でSDKAppIDを確認できます。 |
userId | String | 現在のユーザーID。文字列タイプでは、英語のアルファベット(a-zとA-Z)、数字(0-9)、ハイフン(-)とアンダーライン(_)のみ使用できます。 |
userSig | String | Tencent Cloudによって設計されたセキュリティ保護署名。取得方法についてはUserSigの計算方法をご参照ください。 |
config | TRTCLiveRoomConfig | グローバルコンフィギュレーション情報。ログイン時に初期化してください。ログイン後は変更できなくなります。
|
ログアウト。
Future<ActionCallback> logout();
個人情報の修正。
Future<ActionCallback> setSelfProfile(String userName, String avatarURL);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userName | String | ニックネーム。 |
avatarURL | String | プロフィール画像URL。 |
ルームの新規作成(キャスターが呼び出し)。
Future<ActionCallback> createRoom(int roomId, TRTCCreateRoomParam roomParam);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
roomId | int | ルームIDは、ご自身でアサインし、一元管理する必要があります。複数の roomID を、1つのライブストリーミングルームリストにまとめることができます。Tencent Cloudでは現在、ライブストリーミングルームリストの管理サービスを行っていませんので、ご自身でライブストリーミングルームリストを管理してください。 |
roomParam | RoomParam | ルーム情報は、ルーム名、カバー情報など、ルームを説明するための情報です。ルームリストおよびルーム情報をご自身のサーバーで管理する場合は、このパラメータは無視してもかまいません。 |
キャスターがブロードキャストを開始する際の通常の呼び出しプロセスは次のとおりです。
startCameraPreview()
を呼び出し、カメラのプレビューを起動します。この時美顔パラメータを調整できます。 createRoom()
を呼び出し、ライブストリーミングルームを作成します。ルーム作成が成功したかどうかがActionCallbackでキャスターに通知されます。starPublish()
を呼び出し、プッシュを開始します。ルームの破棄(キャスターが呼び出し)。キャスターは、ルーム作成後、この関数を呼び出してルームを破棄します。
Future<ActionCallback> destroyRoom();
入室(視聴者が呼び出し)。
Future<ActionCallback> enterRoom(int roomId);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
roomId | int | ルームID。 |
視聴者のライブストリーミング視聴の通常の呼び出しフローは以下のとおりです。
1.【視聴者】サーバーから取得する最新のライブストリーミングルームリストには、多くのライブストリーミングルームのroomIdおよびルーム情報が含まれる場合があります。
2. 【視聴者】視聴者は1つのライブストリーミングルームを選択し、enterRoom()
を呼び出して、このルームに参加します。
3. 【視聴者】startPlay(userId)
を呼び出し、キャスターのuserIdを渡して再生を開始します。
startPlay(userID)
を直接呼び出せば、再生を開始できます。TRTCLiveRoomDelegate
からonAnchorEnter(userId)
のイベントコールバックを受信します。このコールバックの中にキャスターのuserId情報が含まれていますので、startPlay(userId)
を再び呼び出せば、再生できます。 ルームを退出します。
Future<ActionCallback> exitRoom();
ルームリストの詳細情報を取得します。ルーム情報は、キャスターが createRoom()
作成時にroomInfoによって設定します。
説明:ルームリストおよびルーム情報をご自身で管理する場合は、この関数は無視してもかまいません。
Future<RoomInfoCallback> getRoomInfos(List<String> roomIdList);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
roomIdList | List&dxlt;String&dxgt; | ルームナンバーリスト。 |
ルーム内の全キャスターのリストを取得します。enterRoom()
成功後に呼び出しが有効となります。
Future<UserListCallback> getAnchorList();
ルーム内の全視聴者の情報を取得します。enterRoom()
成功後に呼び出しが有効となります。
Future<UserListCallback> getRoomMemberList(int nextSeq)
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
nextSeq | int | ページネーションプルフラグ。最初のプルに0と入力すると、コールバックが成功します。nextSeqがゼロでない場合は、ページネーションが必要であり、0になるまで渡して再度プルします。 |
ローカルビデオのプレビュー画面を立ち上げます。
Future<void> startCameraPreview(bool isFrontCamera, int viewId);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
isFrontCamera | bool | true:フロントカメラ;false:リアカメラ。 |
viewId | int | ビデオviewのコールバック ID。 |
ローカルのビデオキャプチャおよびプレビューを停止します。
Future<void> stopCameraPreview();
ライブストリーミング(プッシュ)を開始します。次のシーンに適用します。
Future<void> startPublish(String streamId);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
streamId | String? | ライブストリーミングのCDNのstreamIdをバインドするために利用します。視聴者にライブCDN経由でライブストリーミングを視聴させたい場合は、現在のキャスターのライブストリーミングstreamIdを指定する必要があります。 |
ライブストリーミング(プッシュ)を停止します。次のシーンに適用します。
Future<void> stopPublish();
リモートのビデオ画面を再生します。普通の視聴とマイク接続のシーンで呼び出すことができます。
Future<void> startPlay(String userId, int viewId);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | 視聴が必要なユーザーid。 |
viewId | int | ビデオviewのコールバックid。 |
普通の視聴シーン:
enterRoom()
成功後にstartPlay(userId)
を直接呼び出せばキャスターの画面を再生できます。TRTCLiveRoomDelegate
のonAnchorEnter(userId)
のイベントコールバックを受信します。このコールバックの中にキャスターのuserId 情報が含まれていますので、startPlay(userId)
を再び呼び出せば、キャスターの画面を再生できます。ライブストリーミングのマイク接続シーン:
マイク接続の始動後、キャスターはTRTCLiveRoomDelegate
からonAnchorEnter(userId)
のコールバックを受信します。この時コールバックの中のuserIdを使用してstartPlay(userId)
を呼び出せば、マイク接続の画面を再生できます。
リモートのビデオ画面のレンダリングを停止します。onAnchorExit()
のコールバック時、このインターフェースを呼び出す必要があります。
Future<void> stopPlay(String userId);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | 相手側のユーザー情報。 |
視聴者がマイク接続をリクエストします。
Future<ActionCallback> requestJoinAnchor();
キャスターと視聴者のマイク接続フローは次のとおりです。
requestJoinAnchor()
を呼び出し、キャスターにマイク接続リクエストを送信します。TRTCLiveRoomDelegate
のonRequestJoinAnchor()
のコールバック通知を受信します。responseJoinAnchor()
を呼び出して、視聴者からのマイク接続リクエストを受け入れるか決定します。startCameraPreview()
が呼び出され、ローカルカメラが起動します。startPublish()
を呼び出し、正式にプッシュストリームの状態に入ります。TRTCLiveRoomDelegate
の onAnchorEnter()
の通知を受信します。startPlay()
を呼び出すと、マイク接続の視聴者のビデオ画面を見ることができるようになります。onAnchorEnter()
の通知を受け取ります。この時にstartPlay()
を呼び出せば他のマイク接続者のビデオ画面を再生することができます。キャスターがマイク接続のリクエストを処理します。キャスターは、TRTCLiveRoomDelegate
の onRequestJoinAnchor()
のコールバックを受け取った後、このインターフェースを呼び出して、視聴者のマイク接続リクエストを処理する必要があります。
Future<ActionCallback> responseJoinAnchor(String userId, boolean agreee);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | 視聴者ID。 |
agree | bool | true:同意;false:拒否。 |
キャスターがマイク接続の視聴者をキックアウトします。キャスターがこのインターフェースを呼び出し、マイク接続の視聴者をキックアウトすると、キックアウトされたマイク接続の視聴者は、TRTCLiveRoomDelegate
のonKickoutJoinAnchor()
のコールバック通知を受信します。
Future<ActionCallback> kickoutJoinAnchor(String userId);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | マイク接続の視聴者 ID。 |
キャスターがルーム間PKをリクエストします。
Future<ActionCallback> requestRoomPK(int roomId, String userId);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
roomId | int | 招待された側のルーム ID。 |
userId | String | 招待された側のキャスター ID。 |
キャスターとキャスターの間でルーム間PKを行うことができます。ライブストリーミング中の2名のキャスターAとBのルーム間PKのフローは次のとおりです。
requestRoomPK()
を呼び出してキャスターBに向けてマイク接続リクエストを送信します。TRTCLiveRoomDelegate
のonRequestRoomPK()
のコールバック通知を受信します。responseRoomPK()
を呼び出して、キャスター AのPKのリクエストを受け入れるかどうか決定します。TRTCLiveRoomDelegate
のonAnchorEnter()
の通知を待ってから、startPlay()
を呼び出してキャスターAのビデオ画面を表示させます 。onRoomPKAccepted
またはonRoomPKRejected
のコールバック通知を受信します。TRTCLiveRoomDelegate
のonAnchorEnter()
の通知を待ってから、startPlay()
を呼び出し、キャスターBのビデオ画面を表示します。キャスターがルーム間PKのリクエストに応答します。キャスターが応答した後、相手側キャスターは requestRoomPK
で渡されたresponseCallback
のコールバックを受信します。
Future<ActionCallback> responseRoomPK(String userId, boolean agree);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | PKをリクエストしたキャスターID。 |
agree | bool | true:同意;false:拒否。 |
ルーム間PKから退出します。PK中のいずれかのキャスターがルーム間PKの状態から退出すると、もう一方のキャスターはTRTCLiveRoomDelegate
のonQuitRoomPk()
のコールバック通知を受信します。
Future<ActionCallback> quitRoomPK();
フロント/リアカメラを切り替えます。
Future<void> switchCamera(boolean isFrontCamera);
ミラー表示のオン/オフを設定します。
Future<void> setMirror(boolean isMirror);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
isMirror | bool | ミラーオン/オフ。 |
ローカルオーディオをミュートにします。
Future<void> muteLocalAudio(boolean mute);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
mute | boolean | true:ミュート起動;false:ミュート停止。 |
リモートオーディオをミュートにします。
Future<void> muteRemoteAudio(String userId, boolean mute);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | リモートユーザーID。 |
mute | boolean | true:ミュート起動;false:ミュート停止。 |
すべてのリモート側のオーディオをミュートにします。
Future<void> muteAllRemoteAudio(boolean mute);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
mute | boolean | true:ミュート起動;false:ミュート停止。 |
BGMサウンドエフェクト管理オブジェクト TXAudioEffectManagerの取得。
getAudioEffectManager();
美顔管理オブジェクトTXBeautyManagerを取得します。
getBeautyManager();
美顔管理では、次の機能を使用できます。
ルーム内でテキストメッセージをブロードキャストします。通常、弾幕によるチャットに使用します。
Future<ActionCallback> sendRoomTextMsg(String message);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
message | String | テキストメッセージ。 |
カスタマイズしたテキストメッセージを送信します。
Future<ActionCallback> sendRoomCustomMsg(String cmd, String message);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
cmd | String | コマンドワードは、開発者がカスタマイズします。主にさまざまなメッセージタイプを区別するために使用されます。 |
message | String | テキストメッセージ。 |
エラーのコールバック。
説明:SDKリカバリー不能なエラーは必ず監視し、状況に応じてユーザーに適切なインターフェースプロンプトを表示します。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
errCode | int | エラーコード。 |
errMsg | String | エラー情報。 |
警告のコールバック。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
warningCode | int | エラーコード。 |
warningMsg | String | 警告情報。 |
他のユーザーが同じアカウントでログインすると、キックアウトされてオフラインになります。
ルームが破棄された時のコールバック。キャスターが退室する時、ルーム内の全ユーザーがこの通知を受信します。
ローカル入室
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
result | int | result &dxgt; 0 の場合は入室に費やした時間(ms)、result &dxlt; 0 の場合は入室エラーコード。 |
リモートユーザーが再生できるビッグストリーム画面が存在するかどうか(一般的にはカメラに用いられる)。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | ユーザーID。 |
available | boolean | 画面の起動の有無。 |
新しいキャスターの入室の通知を受信します。マイク接続の視聴者とルーム間PKのキャスターが入室すると、視聴者は、新しいキャスターが入室したというイベントを受信します。TRTCLiveRoom
の startPlay()
を呼び出して、そのキャスターのビデオ画面を表示することができます。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | 新しく入室したキャスターの ID。 |
userName | String | ユーザーのニックネーム。 |
userAvatar | String | ユーザーのプロフィール画像のアドレス。 |
キャスターの退室の通知を受信します。ルーム内のキャスター(およびマイク接続中の視聴者)が、新しいキャスターの退室のイベントを受信します。TRTCLiveRoom
のstopPlay()
を呼び出して、そのキャスターのビデオ画面を閉じることができます。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | 退出するキャスターの ID。 |
userName | String | ユーザーのニックネーム。 |
userAvatar | String | ユーザーのプロフィール画像のアドレス。 |
視聴者入室通知の受信。
void onAudienceEnter(TRTCLiveRoomDef.TRTCLiveUserInfo userInfo);
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userInfo | TRTCLiveRoomDef.TRTCLiveUserInfo | 入室する視聴者のユーザーID、ニックネーム、プロフィール画像などの情報。 |
視聴者退室通知の受信。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | 退室した視聴者の情報。 |
userName | String | ユーザーのニックネーム。 |
userAvatar | String | ユーザーのプロフィール画像のアドレス。 |
キャスターが視聴者のマイク接続リクエストを受信した時のコールバック。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | マイク接続をリクエストするユーザーID。 |
userName | String | ユーザーのニックネーム。 |
userAvatar | String | ユーザーのプロフィール画像のアドレス。 |
キャスターが視聴者のマイク接続リクエストに同意します。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | キャスターのユーザーID。 |
キャスターが視聴者のマイク接続リクエストを拒否します。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | キャスターのユーザーID。 |
マイク接続の視聴者がマイク接続からキックアウトされた通知を受信します。マイク接続の視聴者は、キャスターからマイク接続キックアウトのメッセージを受信した場合、TRTCLiveRoom
のstopPublish()
を呼び出してマイク接続から退出する必要があります。
ルーム間PKのリクエストの通知を受信します。キャスターは、他のルームのキャスターからPKのリクエストを受け取り、PKに同意する場合、TRTCLiveRoomDelegate
のonAnchorEnter()
の通知を待ってから、startPlay()
を呼び出して招待側キャスターのストリームを再生する必要があります。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | ルーム間をリクエストするユーザーID。 |
userName | String | ユーザーのニックネーム。 |
userAvatar | String | ユーザーのプロフィール画像のアドレス。 |
キャスターはルーム間PKのリクエストに同意します。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | ルーム間PKに同意するユーザーID。 |
キャスターはルーム間PKのリクエストに同意します。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
userId | String | ルーム間PKを拒否するユーザーID。 |
ルーム間PK中止の通知を受信します。
テキストメッセージの受信。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
message | String | テキストメッセージ。 |
カスタムメッセージの受信。
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
---|---|---|
command | String | コマンドワードは、開発者がカスタマイズします。主にさまざまなメッセージタイプを区別するために使用されます。 |
message | String | テキストメッセージ。 |
この記事はお役に立ちましたか?