クイックインテグレーション

コンポーネントの説明

TUIKaraokeはオープンソースのオーディオビデオUIコンポーネントであり、プロジェクトにTUIKaraokeコンポーネントを統合することにより、数行のコードを書くだけで、アプリケーションにオンラインカラオケシーンを組み込むことができ、カラオケ、マイク管理、ギフトの送付と受領、テキストチャットなどのTRTCのKTVシーンでの関連機能を体験できるようになります。TUIKaraokeはAndroidプラットフォーム用のソースコードもサポートしています。基本機能は下図のとおりです:
説明:
TUIKitシリーズコンポーネントはTencent CloudのTRTCIMという2つの基本的なPaaSサービスを同時に使用し、TRTCをアクティブにした後、IMサービスを同期的にアクティブにすることができます。IMサービスの課金ルールの詳細については、Instant Messagingの料金説明をご参照ください。TRTCをアクティブにすると、デフォルトでは、100DAUまでサポートするIM SDK体験版もアクティブになります。




コンポーネントの統合

ステップ1:TUIKaraokeコンポーネントのダウンロードとインポート

クリックしてGithubに進み、コードのクローン/ダウンロードを選択した後、iOSディレクトリ下のSourceResourcesTXAppBasicフォルダ、TUIKaraoke.podspecファイルをプロジェクトにコピーし、次のようにインポート動作を完了します。
Podfileファイルにインポートコマンドを追加します。次をご参照ください:
pod 'TUIKaraoke', :path => "./", :subspecs => ["TRTC"]
pod 'TXLiteAVSDK_TRTC'
pod 'TXAppBasic', :path => "TXAppBasic/"
端末を開き、Podfileファイルのあるディレクトリ下に進み、インストールコマンドを実行します。次をご参照ください:
pod install

ステップ2:権限の設定

プロジェクトのinfo.plistファイルの中でAppの権限を設定します。SDKには以下の権限が必要です(iOSシステムではマイクを動的に申請してください):
<key>NSMicrophoneUsageDescription</key>
<string>Karaokeにはマイクへのアクセス権限が必要です</string>

ステップ3:初期化およびログイン

インターフェースに関する説明については、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 {
//ログイン成功
}
}
パラメータの説明
SDKAppIDTRTCアプリケーションIDです。Tencent Cloud TRTCサービスをアクティブ化していない場合は、Tencent Cloud TRTCコンソールに進み、新しいTRTCアプリケーションを作成した後、アプリケーション情報をクリックすると、SDKAppID情報が次の図のように表示されます:


SecretkeyTRTCアプリケーションキーであり、SDKAppIdに対応しています。TRTCアプリケーション管理に進むと、SecretKey情報が上の図のように表示されます:
userId:現在のユーザーのIDです。文字列タイプであり、長さは32バイト以内とし、特殊文字の使用はサポートしていません。英語または数字の使用をお勧めします。業務の実際のアカウントシステムと組み合わせてご自身で設定することができます。
userSig:SDKAppId、userId、Secretkeyなどの情報に基づく計算によって得られるセキュリティ保護署名です。ここをクリックするとデバッグ用のUserSigがオンラインで直接生成されます。その他の情報については、UserSigの計算、使用方法をご参照ください。

ステップ4:オンラインKTVシーンの実装

1. キャスターがルームを作成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 {
//作成に成功
}
}
2. リスナーが入室TUIKaraoke.enterRoom
karaokeRoom.enterRoom(roomID: roomInfo.roomID) { [weak self] (code, message) in
guard let `self` = self else { return }
if code == 0 {
//入室に成功
}
}
3. リスナーが自主的にマイク・オン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デモプロジェクトをご参照ください。
4. 音楽再生とKTV体験シーンの実装 ご自身の業務に応じて音楽IDおよびURLリンクを取得し、楽曲を再生できます。詳細についてはTUIKaraoke音楽再生インターフェースをご参照ください。
//音楽の再生
karaokeRoom.startPlayMusic(musicID: musicID, originalUrl: muscicLocalPath, accompanyUrl: accompanyLocalPath);
//音楽の停止
karaokeRoom.stopPlayMusic();
上記の手順が完了すると、KTVの基本機能を実装できます。業務上、チャット、ギフト送付などの機能も必要な場合、次の機能を統合することができます。

ステップ6:テキストチャット機能(オプション)

各キャスターまたはリスナー間のテキストチャット機能を実装したい場合は、次のメソッドによってチャットメッセージを送受信することができます。 インターフェースに関する説明については、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)
}

ステップ7:ギフト送付機能(オプション)

ギフト送付および受領機能を実装したい場合は、次のメソッドによってギフトを送付または受領し、表示することができます。
// 送信側:カスタマイズした「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コンポーネントはボイスチェンジ、キー調整、リバーブなどのオーディオエフェクト機能をサポートしていますか?

サポートしています。具体的にはTUIKaraokeデモプロジェクトをご参照ください。
? ご要望やフィードバックなどがございましたら、colleenyu@tencent.comまでご連絡ください。