コンポーネントの説明
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
ファイルのあるディレクトリ下に進み、インストールコマンドを実行します。次をご参照ください:
ステップ2:権限の設定
プロジェクトのinfo.plistファイルの中でAppの権限を設定します。SDKには以下の権限が必要です(iOSシステムではマイクを動的に申請してください):
<key>NSMicrophoneUsageDescription</key>
<string>Karaokeにはマイクへのアクセス権限が必要です</string>
ステップ3:初期化およびログイン
let karaokeRoom = TRTCKaraokeRoom.shared()
karaokeRoom.setDelegate(delegate: self)
karaokeRoom.login(SDKAppID: Int32(SDKAppID), UserId: UserId, UserSig: ProfileManager.shared.curUserSig()) { code, message in
if 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シーンの実装
int roomId = "ルームID";
let param = RoomParam.init()
param.roomName = "ルーム名";
param.needRequest = false;
param.seatCount = 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 {
}
}
karaokeRoom.enterRoom(roomID: roomInfo.roomID) { [weak self] (code, message) in
guard let `self` = self else { return }
if code == 0 {
}
}
int seatIndex = 1;
karaokeRoom.enterSeat(seatIndex: seatIndex) { [weak self] (code, message) in
guard let `self` = self else { return }
if code == 0 {
}
}
func onSeatListChange(seatInfoList: [SeatInfo]) {
}
karaokeRoom.startPlayMusic(musicID: musicID, originalUrl: muscicLocalPath, accompanyUrl: accompanyLocalPath);
karaokeRoom.stopPlayMusic();
上記の手順が完了すると、KTVの基本機能を実装できます。業務上、チャット、ギフト送付などの機能も必要な場合、次の機能を統合することができます。
ステップ6:テキストチャット機能(オプション)
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:ギフト送付機能(オプション)
ギフト送付および受領機能を実装したい場合は、次のメソッドによってギフトを送付または受領し、表示することができます。
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までご連絡ください。
この記事はお役に立ちましたか?