クイックインテグレーション
コンポーネントの説明
TUIKaraokeはオープンソースのオーディオビデオUIコンポーネントであり、プロジェクトにTUIKaraokeコンポーネントを統合することにより、数行のコードを書くだけで、アプリケーションにオンラインカラオケシーンを組み込むことができ、カラオケ、マイク管理、ギフトの送付と受領、テキストチャットなどのTRTCのKTVシーンでの関連機能を体験できるようになります。TUIKaraokeはAndroidプラットフォーム用のソースコードもサポートしています。基本機能は下図のとおりです:
説明:
TUIKitシリーズコンポーネントはTencent CloudのTRTCとIMという2つの基本的なPaaSサービスを同時に使用し、TRTCをアクティブにした後、IMサービスを同期的にアクティブにすることができます。IMサービスの課金ルールの詳細については、Instant Messagingの料金説明をご参照ください。TRTCをアクティブにすると、デフォルトでは、100DAUまでサポートするIM SDK体験版もアクティブになります。
コンポーネントの統合
ステップ1:TUIKaraokeコンポーネントのダウンロードとインポート
クリックしてGithubに進み、コードのクローン/ダウンロードを選択した後、iOSディレクトリ下の
Source
、Resources
、TXAppBasic
フォルダ、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:初期化およびログイン
// 1.初期化let karaokeRoom = TRTCKaraokeRoom.shared()karaokeRoom.setDelegate(delegate: self)// 2.ログインkaraokeRoom.login(SDKAppID: Int32(SDKAppID), UserId: UserId, UserSig: ProfileManager.shared.curUserSig()) { code, message inif code == 0 {//ログイン成功}}
パラメータの説明:
SDKAppID:TRTCアプリケーションIDです。Tencent Cloud TRTCサービスをアクティブ化していない場合は、Tencent Cloud TRTCコンソールに進み、新しいTRTCアプリケーションを作成した後、アプリケーション情報をクリックすると、SDKAppID情報が次の図のように表示されます:
Secretkey:TRTCアプリケーションキーであり、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) inguard let `self` = self else { return }if code == 0 {//作成に成功}}
2. リスナーが入室TUIKaraoke.enterRoom
karaokeRoom.enterRoom(roomID: roomInfo.roomID) { [weak self] (code, message) inguard let `self` = self else { return }if code == 0 {//入室に成功}}
3. リスナーが自主的にマイク・オンTUIKaraoke.enterSeat
// 1.リスナーが呼び出してマイク・オンint seatIndex = 1;karaokeRoom.enterSeat(seatIndex: seatIndex) { [weak self] (code, message) inguard let `self` = self else { return }if code == 0 {//マイク・オン成功}}// 2.onSeatListChangeコールバックを受信し、マイクリストを更新しますfunc onSeatListChange(seatInfoList: [SeatInfo]) {}
説明:
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) inif 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 inif (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までご連絡ください。