TUIKaraokeはオープンソースのオーディオビデオUIコンポーネントであり、プロジェクトにTUIKaraokeコンポーネントを統合することにより、数行のコードを書くだけで、アプリケーションにオンラインカラオケシーンを組み込むことができ、カラオケ、マイク管理、ギフトの送付と受領、テキストチャットなどのTRTCのKTVシーンでの関連機能を体験できるようになります。TUIKaraokeはAndroidプラットフォーム用のソースコードもサポートしています。基本機能は下図のとおりです:
説明:TUIKitシリーズコンポーネントはTencent CloudのTRTCとIMという2つの基本的なPaaSサービスを同時に使用し、TRTCをアクティブにした後、IMサービスを同期的にアクティブにすることができます。IMサービスの課金ルールの詳細については、Instant Messagingの料金説明をご参照ください。TRTCをアクティブにすると、デフォルトでは、100DAUまでサポートするIM SDK体験版もアクティブになります。
クリックしてGithubに進み、コードのクローン/ダウンロードを選択した後、iOSディレクトリ下のSource
、Resources
、TXAppBasic
フォルダ、TUIKaraoke.podspec
ファイルをプロジェクトにコピーし、次のようにインポート動作を完了します。
Podfile
ファイルにインポートコマンドを追加します。次をご参照ください:
pod 'TUIKaraoke', :path => "./", :subspecs => ["TRTC"]
pod 'TXLiteAVSDK_TRTC'
pod 'TXAppBasic', :path => "TXAppBasic/"
端末を開き、Podfile
ファイルのあるディレクトリ下に進み、インストールコマンドを実行します。次をご参照ください:
pod install
プロジェクトのinfo.plistファイルの中でAppの権限を設定します。SDKには以下の権限が必要です(iOSシステムではマイクを動的に申請してください):
<key>NSMicrophoneUsageDescription</key>
<string>Karaokeにはマイクへのアクセス権限が必要です</string>
インターフェースに関する説明については、TUIKaraokeをご参照ください。
// 1.初期化
let karaokeRoom = TRTCKaraokeRoom.shared()
karaokeRoom.setDelegate(delegate: self)
// 2.ログイン
karaokeRoom.login(SDKAppID: Int32(SDKAppID), UserId: UserId, UserSig: ProfileManager.shared.curUserSig()) { code, message in
if code == 0 {
//ログイン成功
}
}
パラメータの説明:
キャスターがルームを作成TUIKaraoke.createRoom
int roomId = "ルームID";
let param = RoomParam.init()
param.roomName = "ルーム名";
param.needRequest = false; // 管理者によるマイク・オン確認の要否
param.seatCount = 8; //ルームの座席数。計8席あります
param.coverUrl = "ルームカバー図のURL";
karaokeRoom.createRoom(roomID: Int32(roomInfo.roomID), roomParam: param) { [weak self] (code, message) in
guard let `self` = self else { return }
if code == 0 {
//作成に成功
}
}
リスナーが入室TUIKaraoke.enterRoom
karaokeRoom.enterRoom(roomID: roomInfo.roomID) { [weak self] (code, message) in
guard let `self` = self else { return }
if code == 0 {
//入室に成功
}
}
リスナーが自主的にマイク・オンTUIKaraoke.enterSeat
// 1.リスナーが呼び出してマイク・オン
int seatIndex = 1;
karaokeRoom.enterSeat(seatIndex: seatIndex) { [weak self] (code, message) in
guard let `self` = self else { return }
if code == 0 {
//マイク・オン成功
}
}
// 2.onSeatListChangeコールバックを受信し、マイクリストを更新します
func onSeatListChange(seatInfoList: [SeatInfo]) {
}
説明:マイク管理に関連するその他の操作については、TUIKaraokeインターフェースドキュメントをご参照の上、必要に応じて実装するか、またはTUIKaraokeデモプロジェクトをご参照ください。
//音楽の再生
karaokeRoom.startPlayMusic(musicID: musicID, originalUrl: muscicLocalPath, accompanyUrl: accompanyLocalPath);
//音楽の停止
karaokeRoom.stopPlayMusic();
上記の手順が完了すると、KTVの基本機能を実装できます。業務上、チャット、ギフト送付などの機能も必要な場合、次の機能を統合することができます。
各キャスターまたはリスナー間のテキストチャット機能を実装したい場合は、次のメソッドによってチャットメッセージを送受信することができます。
インターフェースに関する説明については、TRTCKaraokeRoom.sendRoomTextMsgをご参照ください。
// 発信側:テキストメッセージの発信
karaokeRoom.sendRoomTextMsg(message: message) { [weak self] (code, message) in
if code == 0 {
//送信に成功
}
}
// 受信側:テキストメッセージのモニタリング
karaokeRoom.setDelegate(delegate: self)
func onRecvRoomTextMsg(message: String, userInfo: UserInfo) {
debugPrint("" + userInfo.userName + "から受信したメッセージ:" + message)
}
ギフト送付および受領機能を実装したい場合は、次のメソッドによってギフトを送付または受領し、表示することができます。
// 送信側:カスタマイズした「IMCMD_GIFT」によってギフトメッセージを区別
karaokeRoom.sendRoomCustomMsg(cmd: kSendGiftCmd, message: message) { code, msg in
if (code == 0) {
//送信に成功
}
}
// 受信側:ギフトメッセージのモニタリング
karaokeRoom.setDelegate(delegate: self)
func onRecvRoomCustomMsg(cmd: String, message: String, userInfo: UserInfo) {
if cmd == kSendGiftCmd {
debugPrint("" + userInfo.userName + "から受領したギフト:" + message)
}
}
サポートしています。具体的にはTUIKaraokeデモプロジェクトをご参照ください。
? ご要望やフィードバックなどがございましたら、colleenyu@tencent.comまでご連絡ください。
この記事はお役に立ちましたか?