Android&iOS&Windows&Mac

このドキュメントでは、主に現在のTRTCからの自発的な退室方法を紹介し、どのような状況で強制的に退室するかについても紹介します:



呼び出しガイド

手順1:事前手順の完了

SDKのプロジェクトへのインポートを参照して、SDKのインポートおよびApp権限の設定を完了します。 ドキュメント入室を参照して、入室プロセスを完了してください。

手順2:現在のルームからの自発的な退室

exitRoomインターフェースを呼び出すことで現在のルームから退室できます。SDKは、退室後にonExitRoom(int reason)コールバックイベントを介して通知します。
Android
iOS&Mac
Windows
// 現在のルームから退室します
mCloud.exitRoom();

self.trtcCloud = [TRTCCloud sharedInstance];
// 現在のルームから退室します
[self.trtcCloud exitRoom];

trtc_cloud_ = getTRTCShareInstance();
// 現在のルームから退室します
trtc_cloud_->exitRoom();

exitRoomインターフェースを呼び出すと、SDKは、退室プロセスに入ります。これには、2つの非常に重要なタスクがあります:
キータスク1:退室の公開 ルーム内の他のユーザーに、現在のルームを離れようすることを通知します。ルーム内の他のユーザーは、ユーザーからonRemoteUserLeaveRoomコールバックを受け取ります。そうでない場合には、他のユーザーは当該ユーザーが「デッドロック」していると誤解する可能性があります。
キータスク2:デバイス権限のリリース ユーザーが退室する前にオーディオビデオストリームを公開している場合、退室プロセスでは、カメラとマイクをオフにしたり、デバイスの使用権をリリースしたりする必要もあります。
したがって、TRTCCloudインスタンスをリリースしたい場合は、onExitRoomコールバックを受信してからリリースすることをお勧めします。

手順3:現在のルームからの強制退出

ユーザーの自発的な退室を除いて、onExitRoom(int reason)コールバックを受け取る2つのケースがあります:
ケース1:現在のルームからの強制退室 サービス側のRemoveUser | RemoveUserByStrRoomIdインターフェースを介して、特定のユーザーを特定のTRTCルームから強制退室させます。当該ユーザーを強制退室させると、当該ユーザーはonExitRoom(1)のコールバックを受け取ります。
ケース2:現在のルームが解散される サーバー側のDismissRoom | DismissRoomByStrRoomIdインターフェースを介して、特定のTRTCルームを解散できます。ルームを解散すると、ルーム内のすべてのユーザーはonExitRoom(2)のコールバックを受け取ります。
Android
iOS&Mac
Windows
// onExitRoomコールバックを監視することで、退室の理由を確認できます
@Override
public void onExitRoom(int reason) {
if (reason == 0) {
Log.d(TAG, "Exit current room by calling the 'exitRoom' api of sdk ...");
} else if (reason == 1) {
Log.d(TAG, "Kicked out of the current room by server through the restful api...");
} else if (reason == 2) {
Log.d(TAG, "Current room is dissolved by server through the restful api...");
}
}

// onExitRoomコールバックを監視することで、退室の理由を確認できます
- (void)onExitRoom:(NSInteger)reason {
if (reason == 0) {
NSLog(@"Exit current room by calling the 'exitRoom' api of sdk ...");
} else if (reason == 1) {
NSLog(@"Kicked out of the current room by server through the restful api...");
} else if (reason == 2) {
NSLog(@"Current room is dissolved by server through the restful api...");
}
}

// onExitRoomコールバックを監視することで、退室の理由を確認できます
void onExitRoom(int reason) {
if (reason == 0) {
printf("Exit current room by calling the 'exitRoom' api of sdk ...");
} else if (reason == 1) {
printf("Kicked out of the current room by server through the restful api...");
} else if (reason == 2) {
printf("Current room is dissolved by server through the restful api...");
}
}