本書では、カスタムレコーディングでGMEサーバー側のレコーディング機能にアクセスする方法を説明します。
運用シーン
GMEはリアルタイム音声ストリーム向けのサーバー側のレコーディング機能を提供し、開発者がコンテンツの保存/管理/二次創作などのシーンを実装することに役立ちます。フルレコーディング:アプリケーションにおけるすべての音声ルームに対して、ルームによるミックスストリーミングとユーザーによるシングルストリーミングをレコーディングすることをサポートします。カスタムレコーディング:ユーザーが指定したルームに対して、ルームによるミックスストリーミングとユーザーによるシングルストリーミングをレコーディングすることをサポートします。レコーディングしたオーディオファイルは、ご利用のアカウント配下のCOSサービスに保存されます。
本書では、カスタムレコーディングの開発・アクセス方法のみを説明します。アプリケーションに対して、フルレコーディングを有効にするには、開発ガイド-フルレコーディングをご参照ください。 ご注意:
GMEサーバー側のレコーディング機能を使用すると、レコーディング中にGMEでレコーディングサービスの使用料金が発生します。GME国際サイトのレコーディングサービスは、2023年4月1日より正式に課金を開始いたします。詳細な料金情報については、GME購入ガイドをご参照ください。 レコーディングしたファイルは、ご利用のTencent Cloudアカウント配下のCOSサービスに保存されます。COS請求書は、実際のストレージ使用量、保存期間、アクセス頻度などに応じて作成されます。料金情報の詳細については、COS料金説明をご参照ください。 前提条件
サーバー側のレコーディングサービスが有効になっていること:現在、サーバー側のレコーディングサービスは、ホワイトリストユーザーだけに提供しています。ホワイトリストを有効化するには、こちらに連絡してください。
サービスアーキテクチャ
機能説明
1.レコーディング範囲
サーバー側のインターフェースで、レコーディングするルームIDのミックスストリーミングまたはルーム内ユーザーのシングルストリーミングを指定できます。
レコーディングを指定したルームIDに対して、サーバー側のインターフェースで、レコーディングするプレイヤーホワイトリストまたはレコーディングしないプレイヤーブラックリストを指定できます。
2.関連インターフェース
このインターフェースのパラメータで、シングルストリーミングまたはミックスストリーミングのレコーディング、レコーディングするRoomID、サブスクリプションのホワイトリストユーザーIDまたはブラックリストユーザーIDを指定できます。
このインターフェースを使用し、指定したtaskidのレコーディングを停止できます。taskidを記録しなかった場合、DescribeTaskInfo()を呼び出して、指定したルームで実行しているレコーディングタスクのtaskidを取得する必要があります。
このインターフェースを使用し、指定したtaskidのレコーディング情報を更新できます。具体的には、レコーディングタイプ、サブスクリプションのホワイトリストユーザーIDまたはブラックリストユーザーIDを更新できます。taskidを記録しなかった場合、DescribeTaskInfo()を呼び出して、指定したルームで実行しているレコーディングタスクのtaskidを取得する必要があります。
このインターフェースを使用し、指定したルームのレコーディング情報を確認できます。具体的には、実行中のレコーディングタスクのtaskid、サブスクリプションのホワイトリストユーザーIDまたはブラックリストユーザーIDを確認できます。
このインターフェースを使用し、指定したtaskidのタスク情報を確認できます。具体的には、レコーディングタイプ、レコーディングしたルームID、レコーディングしたユーザーID、レコーディングファイルの情報を確認できます
3.レコーディングメカニズム
レコーディングタスクの起動メカニズム
レコーディングタスクの停止メカニズム
録音ファイルの作成タイミング
ルームミックスストリーミングの録音ファイル:ルームのレコーディングタスクが起動した後、ルームにユーザーがすでに存在している場合、ミックスストリーミングオーディオファイルが直ちに作成されます。ルームにユーザーが存在しない場合、最初のユーザーがルームに入った直後に、ミックスストリーミングオーディオファイルが作成されます。
ユーザーシングルミックスストリーミングの録音ファイル:ルームのレコーディングタスクが起動した後、レコーディング範囲内のユーザーがルームに入ると、このユーザーのシングルストリーミングオーディオファイルが作成されます。
レコーディングタスクのマルチパートメカニズム
単一オーディオファイルの長さが2時間になると、オーディオファイルを自動的にマルチパートに分割します
ユーザーがマイクの接続を切断すると、ユーザーシングルストリーミングレコーディングオーディオを自動的にマルチパートに分割します。ユーザーがマイクの接続を確立すると、新しいマルチパートが作成されます
レコーディング中のタスクが異常で中断した場合、タスクが自動的に再接続すると、新しいマルチパートが作成されます
レコーディングタスクのイベント通知メカニズム
レコーディングタスクのイベントは、コールバックメカニズムにより、設定されたコールバックアドレスに通知されます。レコーディング開始、レコーディング停止、レコーディングファイルアップロード完了、これらのイベントが発生した場合、コールバック通知を受信します
4.保存先
GMEサーバー側のレコーディングが完了した後、レコーディングしたオーディオファイルは、ご利用のアカウント配下のCOSサービスの指定されたバケットに保存されます。バケットのリージョンは指定する必要があります。指定可能なリージョンのリストについては、COSリージョンの説明をご参照ください。 5.レコーディングファイルのフォーマット
.mp3
6.レコーディングファイルの命名規則
ユーザーシングルレコーティングファイル:bizid_roomid_userid/${タスクの開始時間}_${id}_audio.mp3
ルームミックスストリーミングレコーティングファイル:bizid_roomid/${taskid}${タスクの開始時間}${id}_audio.mp3
bizid: GMEアプリケーションID。GMEコンソールから取得できます
roomid: 音声ルームID。リアルタイム音声サービスを使用する時に定義してGME SDKに渡します
userid: プレイヤーID。リアルタイム音声サービスを使用する時に定義してGME SDKに渡します
taskid: レコーティングタスクID。GMEレコーティングサービスにより生成されます。レコーティングタスクを正常に呼び出すたびに、1つ特殊なタスクIDが生成されます
id: レコーティングタスクのマルチパートのシリアル番号。シリアル番号は0から始まります アクセス手順
ステップ1:コンソールでのレコーティングサービスの設定
GMEコンソールにログインし、サービス管理メニューを開き、レコーディングサービスを有効にするアプリケーションの設定をクリックし、アプリケーションの詳細ページに進みます。 ページで音声レコーティングサービスの変更をクリックし、レコーディングスイッチを有効に設定します。
レコーディングサービスを初めて有効にした場合、GMEはご利用のCOSサービスにアクセスする許可を要求します。ポップアップしたダイアログで許可すると、サーバー側のレコーディングサービスが有効になります。
レコーディングファイルのバケットでバインディングをクリックします。
バケットのバインディングダイアログで、既存COSバケット(既存バケットはCOSコンソールで事前に作成する必要がある)のバインディングまたはバケットの新規作成ができます。 レコーディングイベントのコールバック設定(オプション)
レコーディングサービスのイベントコールバックを受信するには、コールバックアドレスを設定する必要があります。操作パス:アプリケーションの詳細ページで、音声レコーティングサービスの変更をクリックし、コールバックアドレスで変更をクリックし、ポップアップしたダイアログにコールバックを受信するurlアドレスを入力します。現在、レコーディングタスクの完了状態のみに対して、イベントコールバックのメッセージをプッシュします。
レコーディング範囲は、カスタムレコーディングとフルレコーディングを選択できます。この場合、カスタムレコーディングを選択してください。そうしないと、サーバー側に関連するインターフェースの呼出しに失敗します。
上記のように設定し、保存をクリックすると、レコーディングサービスが有効になります。レコーディングサービスを使用する必要があ➁場合、予定外の費用の発生を防ぐために、コンソールでレコーディングサービスのスイッチを無効にしてください。
ステップ2:レコーティングタスクのコールバック受信(オプション)
ステップ1でコールバックアドレスを設定すれば、レコーディングタスクのイベントコールバックを受信できます。
ステップ3:サーバー側のインターフェースの呼出しによるレコーティング範囲の定義
業務シーンの必要性に応じて、インターフェースを呼び出してください。呼出し順とプロセスの設計において、以下の点に注意してください:
(1)既存のRoomIdに対するレコーディング開始リクエストのみをサポートします。RoomIdが存在しなければ、レコーディングタスクの作成に失敗します
(2)自発的に呼び出してレコーディングを停止しなければ、ルームにユーザーがいる限り、レコーディングプロセスはずっと実行します。ルーム内のユーザーが全部退出した後、元のレコーディングタスクのプロセスは12時間保持されます。保持中に、ユーザーが改めてルームに入れば、レコーディングが自動的に開始します。レコーディングプロセスの保持時間が過ぎた後、ユーザーがルームに入っても、レコーディングは自動的に開始しません。
ステップ4:レコーティングファイルの確認/管理
完全なオーディオファイルはレコーディングタスクが終了して数分以内に作成できます。ご利用のCOSコンソールで、レコーディングファイルを確認、管理できます。
この記事はお役に立ちましたか?