TUIKaraokeはオープンソースのオーディオビデオUIコンポーネントであり、プロジェクトにTUIKaraokeコンポーネントを統合することにより、数行のコードを書くだけで、アプリケーションにオンラインカラオケシーンを組み込むことができ、カラオケ、マイク管理、ギフトの送付と受領、テキストチャットなどのTRTCのKTVシーンでの関連機能を体験できるようになります。TUIKaraokeはiOSプラットフォーム用のソースコードもサポートしています。基本機能は下図のとおりです。
クリックしてGithubに進み、コードのクローン/ダウンロードを選択した後、Androidディレクトリ下のSource、Debugディレクトリをプロジェクトにコピーし、次のようにインポート動作を完了します。
setting.gradle
へのインポートを完了します。以下をご参照ください。
include ':Source'
include ':Debug'
appのbuild.gradleファイルにTUIKaraokeに対する依存関係を追加します。
api project(':Source')
ルートディレクトリのbuild.gradle
ファイルにTRTC SDK
およびIM SDK
の依存関係を追加します。
ext {
liteavSdk = "com.tencent.liteav:LiteAVSDK_TRTCl:latest.release"
imSdk = "com.tencent.imsdk:imsdk-plus:latest.release"
}
AndroidManifest.xmlにAppの権限を設定します。SDKには次の権限が必要です(6.0以上のAndroidシステムではマイク、ストレージ読み取りの権限などを動的に申請する必要があります)。
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> // ユースケース:フローティングウィンドウ機能にはこの権限が必要です。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" /> // ユースケース:Bluetoothイヤホンを使用する場合はこの権限が必要です。
proguard-rules.proファイルでは、SDK関連を非難読化リストに追加します。
-keep class com.tencent.** { *; }
インターフェースに関する詳細については、TUIKaraokeをご参照ください。
// 1.初期化
TRTCKaraokeRoom mTRTCKaraokeRoom = TRTCKaraokeRoom.sharedInstance(this);
mTRTCKaraokeRoom.setDelegate(this);
// 2.ログイン
mTRTCKaraokeRoom.login(SDKAppID, UserID, UserSig, new TRTCKaraokeRoomCallback.ActionCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 0) {
//ログイン成功
}
}
});
パラメータの説明:
キャスターがルームを作成TUIKaraoke.createRoom
int roomId = "ルームID";
TRTCKaraokeRoomDef.RoomParam roomParam = new TRTCKaraokeRoomDef.RoomParam();
roomParam.roomName = "ルーム名";
roomParam.needRequest = false; // マイク・オンに対する管理者の確認の要否
roomParam.seatCount = 8; //ルームの座席数。計8席あります
roomParam.coverUrl = "ルームカバー図のURL";
mTRTCKaraokeRoom.createRoom(roomId, roomParam, new TRTCKaraokeRoomCallback.ActionCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 0) {
//作成に成功
}
}
});
リスナーが入室TUIKaraoke.enterRoom
mTRTCKaraokeRoom.enterRoom(roomId, new TRTCKaraokeRoomCallback.ActionCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 0) {
//入室に成功
}
}
});
リスナーが自主的にマイク・オン TUIKaraoke.enterSeat
// 1.リスナーが呼び出してマイク・オン
int seatIndex = 1;
mTRTCKaraokeRoom.enterSeat(seatIndex, new TRTCKaraokeRoomCallback.ActionCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 0) {
//マイク・オン成功
}
}
});
// 2.onSeatListChangeコールバックを受信し、マイクリストを更新します
@Override
public void onSeatListChange(final List<TRTCKaraokeRoomDef.SeatInfo> seatInfoList) {
}
説明:マイク管理に関連するその他の操作については、TUIKaraokeインターフェースドキュメントをご参照の上、必要に応じて実装するか、または当社のTUIKaraokeデモプロジェクトをご参照ください。
//音楽の再生
mTRTCKaraokeRoom.startPlayMusic(musicID,url);
//音楽の停止
mTRTCKaraokeRoom.stopPlayMusic();
上記の手順が完了すると、KTVの基本機能を実装できます。業務上、テキストチャット、ギフト送付などの機能も必要な場合、次の機能を統合することができます。
各キャスターまたはリスナー間のテキストチャット機能を実装したい場合は、次のメソッドによってチャットメッセージを送受信することができます。
インターフェースに関する詳細については、TRTCKaraokeRoom.sendRoomTextMsgをご参照ください。
// 発信側:テキストメッセージの発信
mTRTCKaraokeRoom.sendRoomTextMsg("Hello Word!", new TRTCKaraokeRoomCallback.ActionCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 0) {
//送信に成功
}
}
});
// 受信側:テキストメッセージのモニタリング
mTRTCKaraokeRoom.setDelegate(new TRTCKaraokeRoomDelegate() {
@Override
public void onRecvRoomTextMsg(String message, TRTCKaraokeRoomDef.UserInfo userInfo) {
Log.d(TAG,"が" + userInfo.userName + "から受信したメッセージ:" + message);
}
});
ギフト送付および受領機能を実装したい場合は、次のメソッドによってギフトを送付または受領し、表示することができます。
// 送信側:カスタマイズした「CMD_GIFT」によってギフトメッセージを区別
mTRTCKaraokeRoom.sendRoomCustomMsg("CMD_GIFT",date, new TRTCKaraokeRoomCallback.ActionCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 0) {
//送信に成功
}
}
});
// 受信側:ギフトメッセージのモニタリング
mTRTCKaraokeRoom.setDelegate(new TRTCKaraokeRoomDelegate() {
@Override
public void onRecvRoomCustomMsg(String cmd, String message, TRTCKaraokeRoomDef.UserInfo userInfo) {
if ("CMD_GIFT".equals(cmd)) {
// ギフトメッセージの受信
Log.d(TAG, "" + userInfo.userName + "からのギフトを受信:" + message);
}
}
});
サポートしています。
説明:ご要望やフィードバックなどがございましたら、colleenyu@tencent.comまでご連絡ください。
この記事はお役に立ちましたか?