![]() |
setting.gradle
へのインポートを完了します。以下をご参照ください:include ':Source'
api project(':Source')
build.gradle
ファイルにTRTC SDK
およびIM SDK
の依存関係を追加しますext {liteavSdk = "com.tencent.liteav:LiteAVSDK_TRTC:latest.release"imSdk = "com.tencent.imsdk:imsdk-plus:latest.release"}
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.RECORD_AUDIO" />
-keep class com.tencent.** { *; }
// 1.初期化TRTCVoiceRoom mTRTCVoiceRoom = TRTCVoiceRoom.sharedInstance(this);mTRTCVoiceRoom.setDelegate(new TRTCVoiceRoomDelegate() {);// 2.ログインmTRTCVoiceRoom.login(SDKAppID, userId, userSig, new TRTCVoiceRoomCallback.ActionCallback() {@Overridepublic void onCallback(int code, String msg) {if (code == 0) {//ログイン成功}}});
// 1.管理者が呼び出してルームを作成int roomId = 12345; //ルームidfinal TRTCVoiceRoomDef.RoomParam roomParam = new TRTCVoiceRoomDef.RoomParam();roomParam.roomName = "ルーム名";roomParam.needRequest = false; // マイク・オンに対する管理者の確認の要否roomParam.seatCount = 7; // ルームの座席数。ここでは計7席あり、管理者が1席を占め、残り6席がリスナーとなりますroomParam.coverUrl = "ルームカバー図のURL ";mTRTCVoiceRoom.createRoom(roomId, roomParam, new TRTCVoiceRoomCallback.ActionCallback() {@Overridepublic void onCallback(int code, String msg) {if (code == 0) {//作成に成功}}});
// 1.リスナーが呼び出して入室mTRTCVoiceRoom.enterRoom(roomId, new TRTCVoiceRoomCallback.ActionCallback() {@Overridepublic void onCallback(int code, String msg) {if (code == 0) {//入室に成功}}});
// 1: リスナーが呼び出してマイク・オンint seatIndex = 2; //マイクのindexmTRTCVoiceRoom.enterSeat(seatIndex, new TRTCVoiceRoomCallback.ActionCallback() {@Overridepublic void onCallback(int code, String msg) {if (code == 0) {//操作に成功しました}}});// 2. onSeatListChangeコールバックを受信し、マイクリストを更新します@Overridepublic void onSeatListChange(final List<TRTCVoiceRoomDef.SeatInfo> seatInfoList) {}
// 1: 管理者が呼び出して、視聴者が発言できるように招待int seatIndex = 2; //マイクのindexString userId = "123"; //マイク・オンが必要なユーザーidmTRTCVoiceRoom.pickSeat(1, userId, new TRTCVoiceRoomCallback.ActionCallback() {@Overridepublic void onCallback(int code, String msg) {if (code == 0) {//操作に成功しました}}});// 2. onSeatListChangeコールバックを受信し、マイクリストを更新します@Overridepublic void onSeatListChange(final List<TRTCVoiceRoomDef.SeatInfo> seatInfoList) {}
// リスナー側の視点// 1.リスナーが呼び出してマイク・オンを申請String seatIndex = "1"; //マイクのindexString userId = "123"; //ユーザーidString inviteId = mTRTCVoiceRoom.sendInvitation("takeSeat", userId, seatIndex, null);// 2.招待のリクエスト同意を受信し、正式にマイク・オンになります@Overridepublic void onInviteeAccepted(String id, String invitee) {if(id.equals(inviteId)) {mTRTCVoiceRoom.enterSeat(index, null);}}// 管理者側の視点// 1.管理者がリクエストを受信します@Overridepublic void onReceiveNewInvitation(final String id, String inviter, String cmd, final String content) {if (cmd.equals("takeSeat")) {// 2.管理者がリスナーのリクエストに同意しますmTRTCVoiceRoom.acceptInvitation(id, null);}}
// 管理者側の視点// 1.管理者が呼び出して、視聴者が発言できるように招待をリクエストString seatIndex = "1"; //マイクのindexString userId = "123"; //ユーザーidString inviteId = mTRTCVoiceRoom.sendInvitation("pickSeat", userId, seatIndex, null);// 2.招待のリクエスト同意を受信し、正式にマイク・オンになります@Overridepublic void onInviteeAccepted(String id, String invitee) {if(id.equals(inviteId)) {mTRTCVoiceRoom.pickSeat(index, null);}}// リスナー側の視点// 1.リスナーがリクエストを受信します@Overridepublic void onReceiveNewInvitation(final String id, String inviter, String cmd, final String content) {if (cmd.equals("pickSeat")) {// 2.リスナーが管理者のリクエストに同意しますmTRTCVoiceRoom.acceptInvitation(id, null);}}
// 発信側:テキストメッセージの発信mTRTCVoiceRoom.sendRoomTextMsg("Hello Word!", null);// 受信側:テキストメッセージのモニタリングmTRTCVoiceRoom.setDelegate(new TRTCVoiceRoomDelegate() {@Overridepublic void onRecvRoomTextMsg(String message, TRTCVoiceRoomDef.UserInfo userInfo) {Log.d(TAG,"が" + userInfo.userName + "から受信したメッセージ:" + message);}});
// 発信側:カスタマイズCmdによって弾幕と「いいね」情報を区別することができます// eg:「CMD_DANMU」は弾幕コメントを表し、「CMD_LIKE」は「いいね」情報を表しますmTRTCVoiceRoom.sendRoomCustomMsg("CMD_DANMU", "Hello world", null);mTRTCVoiceRoom.sendRoomCustomMsg("CMD_LIKE", "", null);// 受信側:カスタムメッセージのモニタリングmTRTCVoiceRoom.setDelegate(new TRTCVoiceRoomDelegate() {@Overridepublic void onRecvRoomCustomMsg(String cmd, String message, TRTCVoiceRoomDef.UserInfo userInfo) {if ("CMD_DANMU".equals(cmd)) {// 弾幕コメントの受信Log.d(TAG, "が" + userInfo.userName + "から受信した弾幕コメント:" + message);} else if ("CMD_LIKE".equals(cmd)) {// 「いいね」情報の受信Log.d(TAG, userInfo.userName + "いいねを付けました!");}}});
この記事はお役に立ちましたか?