シナリオソリューション
シナリオ紹介
ボイスチャットルームは、純粋なオーディオでオンラインでのインタラクティブなソーシャルスペースを指し、通常、ルームにはいくつかのマイクポジションが設定されており、アンカーとマイクオン聞き手がマイクでチャットし、他の聞き手はルームに入って聞くことができます。異なるタイプのルームでは、マイクポジションの数と最大収容可能な聞き手の数が異なります。RTC Engine は、最大50人同時にマイクを使用したチャットをサポートし、マイクのオン/オフをスムーズに切り替え、音声チャットの遅延は300ms未満です。変声、効果音、リバーブなどさまざまなオーディオ効果をサポートし、音声チャット体験をより豊かにします。Chat と組み合わせることで、公開チャット、プライベートチャット、グループチャット、いいね、ギフト送信など、さまざまなメッセージインタラクション形式をサポートし、優れたチャットインタラクション体験を実現します。


実装方法
完全なボイスチャットルームシナリオを実装するには、複数の機能モジュールが関与する必要があります:ルーム管理、座席管理、オーディオストリーム管理、クラウド録画など。各機能モジュールの下での主要なアクションと機能ポイントは、以下の表に示されています:
機能モジュール | 主要なアクションと機能ポイント |
ルーム管理 | ルームリスト、ルームの作成、ルームの参加、ルームから退出、ルームの削除 |
座席管理 | 自分からマイクオン、マイクオン招待、自分からマイクオフ、強制マイクオフ、マイクミュート、マイクロック、マイクポジション移動 |
オーディオストリーム管理 | プッシュ/プルアーキテクチャプラン、リアルタイムストリーム購読モード |
クラウド録画 | RTC Engine クラウド録画 |
チャットルームシナリオ全体の業務アーキテクチャは以下の通りです。ルームマスターがボイスチャットルームを作成し、ユーザーは興味のあるルームを選択して参加することができます。ルームに入った後のユーザーはマイクオンにして、マイクオンアンカーとボイスでのインタラクションができますが、ルーム内のボイスコンテンツは、コンプライアンスの要件により、録音され、審査される必要があります。

ルーム管理
ルーム管理モジュールは主にルームリストのメンテナンスを担当し、主に以下の機能を含みます。
ルームの作成:ユーザーが業務システムにログインした後、ルームを作成できます。ルームを作成した後、ルームリストには追加する操作が必要です。
ルームに参加:ユーザーは既存のルームに参加することができ、参加後は現在のルームのメンバーリストに追加する操作が必要です。
ルームから退出:ユーザーは現在のルームを退出することができます。ルームを退出した後、現在のルームの人員リストから削除する操作が必要です。
ルームの削除:全てのユーザーがルームから退出した後、ルームを削除する必要があり、ルームを削除した後はルームリストから削除する操作が必要です。
ソリューションアーキテクチャ
全体のルーム管理のアーキテクチャでは、主に3つの主要なモジュールのルーム管理が関与しています。
業務側のルーム管理:主にルームリストの維持と管理に使用され、例えば業務ルームの属性と状態の同期、機能にはルームリストの照会、入退室、ルームの作成と破棄が含まれます。
Chat グループ管理:主にルームメンバーリスト、シグナリングの送受信、メッセージインタラクション(例:マイク申請の承認/拒否、マイクの強制オン/オフ、マイク音声のミュート/解除、マイクの使用禁止/解除)に使用されます。また、グループ次元で区別され、機能にはグループの作成、参加、退出、破棄が含まれます。
RTC Engine ルーム管理:主にオーディオストリームのインタラクションと伝送に使用されます。例えば、配信者/視聴者の音声/音楽の送信と受信などが含まれます。また、ルーム次元で区別され、機能にはRTC Engineルームへの入退室が含まれます。

具体的な実装
ルーム管理では、異なるユーザーロールには異なる機能権限および実装プロセスがあります。ボイスチャットルームには主にルームマスターと聞き手の2種類のロールが存在し、ロールの説明およびその違いについては以下の表を参照してください。
ロール | 説明 | 違い |
ルームマスター | ルームの最高権限の所有者は、ルームを作成または破棄することができます。 | ロールは必ずアンカーでなければなりません ビジネスルーム/Chat グループ/RTC ルームの作成または破棄 |
聞き手 | ルームの参加者は、マイクオンしてアンカーになることもできます。 | ロールは視聴者/アンカーにすることができます 入退室 |
実装の流れ
ルームマスター


1. ルームリストを取得します。
2. 業務インターフェースを通じて対応するルームを作成します。
3. IChat グループを作成します。
4. ビジネスルーム/Chat グループ/RTC ルームに入室し、他のユーザーとインタラクションします。
5. Chat グループ/RTC ルーム/ビジネスルームから退室します。
6. Chat グループを破棄します。
聞き手


1. ルームリストを取得します。
2. ビジネスルーム/Chat グループ/RTC ルームに入室し、他のユーザーとインタラクションします。
3. Chat グループ/RTC ルーム/ビジネスルームから退室します。
座席管理
ボイスチャットルーム内のマイクポジションは一般的に順序があり、限られています。例えば、ルームの聞き手がマイクオンするには、ルームマスターの同意を得た後に順序よく行われ、ルーム内の座席の数は一般的に10個を超えません。座席管理は主に、業務シナリオに基づいてルーム内のマイクポジションの数を定義し、現在のルーム内のすべてのマイクポジションの状態管理を担当します。座席管理には、主に次の機能が含まれます:自分からマイクオン、マイクオン招待、自分からマイクオフ、強制マイクオフ、マイクミュート、マイクロック、マイクポジション移動など。
ユーザーがルームに入った後、空いているマイクポジションがある場合のみ、ユーザーはマイクオンを申請できます。
ルームマスターがユーザーのマイクオンを承認した後、マイクポジションの状態を空いていない状態に変更する必要があります。
ユーザーがプッシュを停止し、マイクオフにした後、マイクポジションの状態をリセットする必要があります。
ルームマスターは、マイクポジションをロック、マイクオン招待、強制マイクオフ、マイク禁言などの権限を持っています。
ソリューションアーキテクチャ
以下では、RTC Engine とChat を組み合わせて、マイク管理のソリューションアーキテクチャを構成します。全体のルーム管理アーキテクチャでは、ルームマスターが最高権限を持ち、人をマイクオンに招待/キックする、マイクのミュート/ミュート解除、マイクのBAN/BAN解除が可能で、聞き手もマイクオン申請して、マイクオンアンカーになり、ルーム内の他のアンカーとインタラクションすることができます。

具体的な実装
座席管理では、異なるユーザーロールには異なる機能権限および実装プロセスがあります。主にルームマスターと聞き手の2種類のロールが存在し、ロールの説明およびその違いについては以下の表を参照してください。
ロール | 説明 | 違い |
ルームマスター | マイクポジションの最高権限所有者で、すべてのマイクポジションの管理を担当し、ルームマスターが退室した後、すべてのマイクポジションが自動的に解散されます。 | ロールは必ずアンカーでなければなりません 入室して自分からマイクオン マイクオン申請を承諾/拒否 マイクオン/オフ招待 マイクポジションのミュート/ミュート解除 マイクポジションのBAN/BAN解除 |
聞き手 | ルーム内のマイクポジション参加者は、マイクオン/オフでインタラクションできます。 | ロールは視聴者/アンカーにすることができます マイクオン/オフ申請 |
実装の流れ
ルームマスター


1. アンカーがロビーに入り、ルームリストを取得します。
2. アンカーがルームマスターとしてルームを作成し、そのルームに参加します。
3. ルームマスターはグループ属性を利用してマイクリストを取得し、自分からマイクオンします。
4. 聞き手がマイクオンします。マイクオンした後、他のマイクオンユーザーとのインタラクションが可能です。聞き手がマイクオンするには2つの方法があります:聞き手が自分からマイクオンを申請し、ルームマスターがそれを承認すること。ルームマスターが聞き手をマイクオン招待し、聞き手がそれを承認すること。
5. 聞き手のマイクオフします。マイクオフには2つの方法があります:聞き手が自分からマイクオフすること、またはルームマスターが聞き手を強制的にマイクオフさせること。
6. ルームマスターが退出し、ルームを破棄します(ルームが解散され、全ユーザーが強制的にマイクオフして退室します)。
聞き手


1. 聞き手がロビーに入り、ルームリストを取得します。
2. 聞き手がルームを選択して入室します。
3. 聞き手はグループ属性によってマイクポジションリストを取得します。
4. 聞き手がマイクオンを申請し、ルームマスターが同意した後、聞き手はマイクポジション上の他のユーザーとインタラクションします。
5. 聞き手がマイクオフしてルームから退出します。
オーディオストリーム管理
チャットのインタラクティブシナリオでは通常、RTCストリームアクセスソリューションを選択します。アクセスが簡単で迅速であり、リアルタイムのインタラクションの低遅延特性を体験することができます。以下の図に示すように、マイクオンのユーザーとマイクオフの視聴者の2つのロールを使用して、リアルタイムインタラクティブボイスチャットのための比較的クラシックなプッシュ/プルアーキテクチャソリューションを示しています。

ルーム内のリアルタイムストリーム購読について、RTC Engineは自動購読と手動購読の2つの購読モードを提供しています。
自動購読:ユーザーがルームに入ると、そのルームのオーディオ・ビデオストリームを即座に受信し、オーディオは自動的に再生され、ビデオは自動的にデコードが開始されます。
手動購読:ユーザーがルームに入った後、手動で
startRemoteViewを呼び出してビデオストリームの購読とデコードを開始する必要があり、手動でmuteRemoteAudioを呼び出してオーディオの再生を開始する必要があります。ほとんどのシナリオで、RTC Engineはデフォルトで自動購読モードを採用し、ユーザーがルームに入ると、より良い「インスタント体験」を求めるべく、ルームの中のすべてのアンカーのオーディオ・ビデオストリームを購読します。一方、手動購読モードは、より良い柔軟性とカスタマイズ性を備えており、ユーザーはオーディオ・ビデオストリームを選択的に購読することができます。
説明:
手動購読モードと比較して、自動購読は複雑なメディアストリームの購読管理が不要で、ボイスチャットシナリオで特別な要求がない限り自動購読モードの使用を推奨します。
クラウド録画
RTC Engineの最新アップグレードしたクラウド録画は、RTC Engine内部のリアルタイム録画クラスターを使用してオーディオ・ビデオを録画し、より完全で統一された録画体験を提供します。
シングルストリーム録画:RTC Engine のクラウド録画機能を使用して、ルーム内の各ユーザーのオーディオストリームを独立したファイルとして録画できます。


ミキシング録音:同じルームのオーディオメディアストリームを1つのファイルにミキシング録音します。


説明:
キー業務ロジック
ゴーストマイク処理プラン
ゴーストマイク、または爆音マイク、ブラックマイクとも呼ばれ、マイクオフのユーザーが話すことができ、他のユーザーがそのマイクオフのユーザーの声を聞くことができる現象を指します。ゴーストマイク現象が発生する根本的な原因は、ビジネス側のマイク状態と RTC Engine のユーザーロール状態が不一致であることです。この問題が発生する可能性のある原因は以下のいくつかがあります。
視聴者がマイクをオフにし、マイクリストを更新したが、マイク情報コールバックが到達しなかったか、またはブロックされたため、視聴者のローカルでRTC Engineの視聴者ロールへの切り替えとマイクのオフ操作が実行されず、その結果、マイクオフ状態でも発言できます。
視聴者がマイクをオフにし、マイクリストを更新した後、マイク情報コールバックを受信したが、視聴者のローカルでの RTC Engine 視聴者ロール切り替えインターフェースの呼び出しが失敗し、その結果、マイクオフ状態でも発言できます。
Appがブルートフォース攻撃を受け、UserSigがハッカーに傍受されたため、ハッカーが配信者ロールで RTC Engine ルームに自由に発言できる状態になってしまった。
ゴーストマイクの検出及び処理
ゴーストマイクを検出し、積極的に識別して迅速に処理することができます。ここでは、サーバー側検出ソリューションの使用を推奨します:リアルタイムのアンカーリストの比較検出。
方案原理: 音声チャットルームシーンではユーザーロールが配信者と視聴者に分かれており、配信者ロールのみがローカルオーディオをアップロードできます。そのため、業務マイクリストと RTC Engine のロールリストを比較することで、ゴーストマイクを検出できます。RTC Engine はサーバー側のルーム及びメディアイベントコールバックを提供しており、ルーム入室、ロール切り替え、ルーム退室などのイベントを監視することで、現在のルームのリアルタイム配信者リストを維持できます。その後、RTC Engine のリアルタイム配信者リストと業務の全量マイクリストを比較することで、簡単にゴーストマイクを検出・識別し、ルームからの退室やミュートなどの操作を実行できます。
1. RTC Engineのコンソールは、コールバック情報の自己設定をサポートしており、設定完了後はイベントコールバック通知を受信できます。詳細は コールバック設定をご参照ください。
2. コールバックイベントのペイロードを受信して解析し、103/104/105イベントに注目し、現在のルームでリアルタイムオンラインのアンカーロールユーザーリストを統計します。詳細はコールバックイベントを参照してください。
{"EventGroupId": 1, #ルームイベントグループ"EventType": 103, #入室イベント"CallbackTs":1687679847972, #コールバック時間、単位ミリ秒"EventInfo":{"RoomId": "123456", #ルーム番号"EventTs":1687679847, #イベント発生時間、単位秒"EventMsTs": 1687679847899, #イベント発生時間、単位ミリ秒"UserId": "1a99b0a9", #ユーザー名"Role": 20, #ユーザーロール 20:アンカー; 21:視聴者"TerminalType": 2, #ターミナルタイプ"UserType": 3, #ユーザータイプ"Reason": 1 #具体原因}}
{"EventGroupId": 1, #ルームイベントグループ"EventType": 104, #退室イベント"CallbackTs": 1687679847972, #コールバック時間、単位ミリ秒"EventInfo": {"RoomId": "123456", #ルーム番号"EventTs": 1687679847, #イベント発生時間、単位秒"EventMsTs": 1687679847899, #イベント発生時間、単位ミリ秒"UserId": "1a99b0a9", #ユーザー名"Role": 20, #ユーザーロール 20:アンカー; 21:視聴者"Reason": 1 #具体原因}}
{"EventGroupId": 1, #ルームイベントグループ"EventType": 105, #ロール切り替えイベント"CallbackTs": 1687679847972, #コールバック時間、単位ミリ秒"EventInfo": {"RoomId": "123456", #ルーム番号"EventTs": 1687679847, #イベント発生時間、単位秒"EventMsTs": 1687679847899, #イベント発生時間、単位ミリ秒"UserId": "1a99b0a9", #ユーザー名"Role": 20 #ユーザーロール 20:アンカー; 21:視聴者}}
注意:
105-ロール切り替えイベントはユーザーが入室後のロール変更でのみトリガーされるため、103-入室イベントの初期ロール情報に基づいてユーザーロールリストを補完する必要があります。また、104-退室イベントに基づいてユーザーロールリストから削除することで、管理しているルームのユーザーロールリストをより正確に維持することができます。
3. 一定の頻度で各ルームの業務マイクリストとRTC Engineのリアルタイム配信者リストを循環的に比較し、ゴーストマイクを識別してミュートまたはルームから退室させる。
マイクオン/オフでカクつき防止プラン
問題の説明
モバイルデバイスのシステムメカニズムの違いにより、AndroidとiOSはボイスチャットシナリオでのマイクオン/オフの挙動が一貫していません。iOS側では、マイクのオン/オフの瞬間に短い音のカクつきが発生する可能性があります。
原因分析
これはiOSシステムのオーディオメカニズムに関連しており、
startLocalAudioとstopLocalAudioの操作はマイクの権限を取得およびリリースし、SDKによるオーディオの再キャプチャーがAVAudioSessionオーディオドライバーの再起動を引き起こし、その結果、マイクオン/オフ時にオーディオが短時間停止する現象が発生します。解決策
RTC Engineの通常のマイクオン/オフ方案のシーケンスは以下の図のようになり、ロールを切り替えると同時にローカルオーディオの収集と公開を開始または停止します。このプランはAndroid端末で正常に使用できます。
iOS端末はマイクオフ操作中に視聴者ロールへの切り替えのみでプッシュを停止でき、
stopLocalAudioオーディオキャプチャーの停止やマイク権限のリリースを呼び出す必要がなく、マイクオンオフのカクつきを避けることができます。
注意:
マイクオン/オフのカクつき防止策では、マイクオフの操作で
stopLocalAudioを呼び出さないため、システムは常にマイクのキャプチャー状態を維持し、ユーザーに誤解を招く可能性があります。オーディオ設定のベストプラクティス
オーディオ設定において、オーディオ品質と音量タイプは2つの異なる概念です。RTC Engineにおけるオーディオ品質は、ローカルオーディオの収集と公開を開始する際に
startLocalAudio(TRTCAudioQuality)で個別に設定でき、またはsetAudioQuality(TRTCAudioQuality)で個別にオーディオ品質を設定できます。音量タイプ、ルーム入室シーンやオーディオ品質の設定など様々な要因を組み合わせて決定されます。また、setSystemVolumeType(TRTCSystemVolumeType)で強制的に特定の音量タイプを指定することもできます。音声品質設定のベストプラクティス
RTC Engine SDKは現在、さまざまな垂直シーンにおける音質への異なる要求を満たすために、3種類の精密に調整された音質モードを提供しています。
音質モード | 音質列挙値 | 音質パラメータ | 音質説明 |
ボーカルモード | TRTCAudioQualitySpeech | サンプリングレート:16k、モノラル。 エンコードビットレート:16kbps | 強力なネットワーク耐性を備えており、回線品質低下の環境でも流暢度が保たれます。ボイスコミュニケーションを主とするアプリケーションシナリオに適しています。例えば、オンライン会議、音声通話など。 |
デフォルトモード | TRTCAudioQualityDefault | サンプリングレート:48k、モノラル。 エンコードビットレート:50kbps | SDKのデフォルトモードでは、音楽の再現性はボーカルモードよりも優れており、同時にデータ転送量も音楽モードよりもはるかに低く、さまざまなシナリオに適応性があります。 |
音楽モード | TRTCAudioQualityMusic | サンプリングレート:48k、フルバンドステレオ。 エンコードビットレート:128kbps | このモードでは、音声伝送のデータ量が非常に大きく、音楽信号が各周波数帯での音質が高く、かつ高い再現性を確保できるため、高音質の音楽を伝送する必要があるシナリオに適しています。 |
上の表からわかるように、ボーカルモードから音楽モードへ、音質効果は向上していますが、音声転送のデータ量も増加していきます。
ボイスチャットルームシナリオでは、完全なボーカルコミュニケーションにはボーカルモードの使用をお勧めします。回線品質低下の条件下でも、より良い流暢さを得ることができます。
BGMを再生する必要があるボイスチャットルームでは、音声の再現性を確保するため、デフォルトモードまたは音楽モードを選択することをお勧めします。
視聴者側のダウンストリームによるネットワーク帯域幅の圧力を考慮して、良好なユーザー体験を保証するために、10人以上のマイクポジションの業務シナリオでは音楽モードの使用を慎むことをお勧めします。
説明:
RTC Engineでは、オーディオ品質の動的調整がサポートされており、つまりストリーミング配信中に
setAudioQuality(TRTCAudioQuality)を呼び出すことでオーディオ品質を動的に調整できます。音量タイプ設定のベストプラクティス
RTC Engine SDKは現在、異なるシーンにおける音量タイプへの異なる要求を満たすために、3種類のシステム音量タイプ制御モードを提供しています。
音量タイプモード | 音量タイプモード列挙値 | 音量タイプモード説明 |
常時通話音量 | TRTCSystemVolumeTypeVOIP | このプランの利点は、ユーザーがマイクのオン/オフを行う際に、オーディオモジュールが作業モードを切り替える必要がなく、シームレスにマイクのオン/オフが可能であり、ユーザーが頻繁にマイクオン/オフを必要とするアプリケーションシナリオに適しています。入室時に選択したシナリオがTRTCAppSceneVideoCallまたはTRTCAppSceneAudioCallの場合、SDKは自動的にこのモードを使用します。 |
自動切替モード | TRTCSystemVolumeTypeAuto | 「マイクオンコール、マイクオフメディア」とも呼ばれ、アンカーがマイクオンの場合は通話音量を使用し、視聴者がマイクオフの場合はメディア音量を使用し、オンラインライブのシナリオに適しています。入室時に選択したシナリオがTRTCAppSceneLIVEまたはTRTCAppSceneVoiceChatRoomの場合、SDKは自動的にこのモードを使用します。 |
全過程のメディア音量 | TRTCSystemVolumeTypeMedia | 通話の全過程でメディア音量を使用し、音質に厳しい要求を持つ音楽シナリオに適しています。ユーザーの大半が外部デバイス(例えば外部サウンドカード)を主に使用している場合、このモードを使用できます。 |
通話シナリオでは、デフォルトの常時通話音量を使用することをお勧めします。この場合、オーディオモジュールを切り替える必要はありません。
ボイスチャットルームシナリオでは、完全なボイスコミュニケーションにはデフォルトの自動切替モードを使用することをお勧めします。つまり、マイクオンで通話、マイクオフでメディアを使用します。
BGMを再生する必要があるボイスチャットルームでは、全過程のメディア音量を設定することを検討してください。これにより、ユーザーがマイクオン/オフ時にリモート音楽のカクつきや音量の急変化の感知を避けることができます。
説明:
特定の音量タイプを指定する必要がある場合は、入室後、プッシュする前に一度
setSystemVolumeTypeを呼び出すことをお勧めします。マイクオン/オフ時には呼び出さないでください。通話音量は携帯電話のAEC機能を使用でき、Bluetoothヘッドセットのマイクを通じて集音できますが、音質は比較的に低いです。
メディア音量は携帯電話のAEC機能を使用できず、Bluetoothヘッドセットのマイクでの集音もできませんが、より良い音楽再生効果を提供します。
シングルストリーム音量評価
ボイスチャットルームシナリオでは、一部の顧客が帯域幅を節約するために、マイクオンユーザーはRTCシングルストリームのプッシュプルにし、視聴者はルーム内のストリームミックスをプルすることがあります。しかし、ボイスチャットルームシナリオでは通常、マイクにいるユーザーの音量に応じてUI上で適切なプロンプトを行う必要があります。例えば、「オスロスコープ」や「VUメーター」とか。シングルオーディオの音量評価フィードバック機能はRTC Engineルーム内で実現するのは容易ですが、オーディオストリームミックスだけで実現するには、いくつかの特別な方法が必要です。以下では、2つのプランの具体的な実装について説明します。
RTCルーム内のシングルストリーム音量評価
ステップ1:音量のヒントを有効にする
enableAudioVolumeEvaluationインターフェースで音量のコールバックを有効にし、同時に任意でローカルのボイス検出機能を有効にすることができます。この機能を有効にすると、SDKはonUserVoiceVolumeのコールバックでローカルユーザーとリモートのストリーミングユーザーの音量、最大音量値、およびローカルのボイス検出結果をフィードバックします。注意:
RTC Engine SDK 10.2以降のバージョンでは、ローカル音声検出機能が追加され、有効にすると、
TRTCVolumeInfo.vadにローカル音声検出結果(配信者ロールである必要あり)が表示され、muteLocalAudioとsetAudioCaptureVolume(0)の操作は音声検出結果に影響を与えず、ユーザーにマイクオンを促すのに便利です。ステップ2:音量コールバックのリスニング
TRTCCloudListenerでonUserVoiceVolumeのコールバックをリスニングし、コールバックではローカルユーザーとリモートプッシュユーザーの音量およびリモートの最大音量値をフィードバックします。音量の大きさに応じてUIで適切なオシロスコープを表示できます。注意:
マイクオンユーザーの波形アニメーションは、onUserVoiceVolumeのコールバックでの音量に基づいて確定できます。波形アニメーションのオン/オフ(ユーザーのマイクオン/オフ状態)は、onUserAudioAvailableのコールバックに基づいて確定することをお勧めします。
オーディオストリームミックス音量評価


オーディオストリームミックス音量評価の実装プロセスは、上図の通りです。マイクオンアンカーが音量のコールバックをリスニングし、ローカル音量とリモート音量を判断し、ローカル音量値とユーザー情報をSEIメッセージの形で音声ストリームに挿入し、ミキシング後にパススルーでマイクオフの視聴者に送ります。または、ルームマスターが一人で全てのマイクオンアンカーのコールバック音量値をSEIで送信します。下図は、プロセスのタイムラインを示しています:

注意:
ミキシングCDN転送SEIパススルーの需要に関わる場合:
入室シナリオではLIVEを選択する必要があり、SEIメッセージがパススルーできなくなるため、完全ボイス入室シナリオを選択してはいけません。
ミキシングインターフェースが
setMixTranscodingConfigを採用している場合、ミキシングモードでPureAudio完全オーディオモードを選択することはできません。ミキシングインターフェースが
startPublishMediaStreamを採用している場合、メディアストリームのトランスコード設定パラメータにはTRTCVideoLayoutパラメータが必須です。下図のように、視聴者側はミキシングを解析したSEIメッセージで、対応する話し手の音量が表示されます。


シナリオのプレイ
ボイスチャットルームのシナリオでは、ルームマスターと数名のマイクオンユーザーが音声でインタラクションし、発言できず、ギフトを贈ったりチャットメッセージでインタラクションする視聴者もいるかもしれません。通常、同じ趣味を持つユーザーを引き付けるために、ルームにはテーマが設定されます。一般的なテーマには、FMラジオ、カラオケボイスチャット、ゲームインタラクション、スポーツ中継などがあります。
FM放送ルーム
アンカーが単独でライブ配信を行ったり、アンカーと数名の固定ゲストがBGMや効果音を流しながらトークショーを行います。視聴者はギフトを送ってマイクオンし、ボイスインタラクションに参加できます。
このシーンでは通常視聴者数が多く、RTC Engineの単一ルームは最大10万人同時接続をサポートするため、マイク上の配信者がRTCストリームをプッシュ/プルする + マイク下の視聴者がRTCシングルストリームをプルする方案が適しています。
説明:
このシナリオの推奨プラン:マイクオンアンカーがRTCをプッシュプルし、マイクオフの視聴者がCDNストリームミックスをプル。
KTVカラオケボイスチャットルーム
通常、1人の管理者が設定されており、皆さんは曲をリクエストしたり、コメントしたり、曲当てゲームをしたり、歌マラソンしたりすることができます。主に、複数人が同時にマイクを使うモードと、複数人が順番にマイクを使うモードの2つのモードがあります。複数人が同時にマイクを使うモードでは、1人がリードシンガーとなり、他のマイクを使っているユーザーは話しながら聞くことができますが、リードシンガーは他のマイクを使っている者の声は聞こえません。ルームの聞き手は全ての声を聞くことができます。複数人が順番にマイクを使うモードでは、曲をリクエストした後、1人が一節を歌い、歌い終わると自動的に次の人に順番が回ります。他のユーザーは待っている間、聞くことしかできず、コメントでの交流のみ可能で、ボイスチャットはできません。
オンラインカラオケシナリオでは、遅延と同期の要求が高く、視聴者がいつでもマイクに参加して合唱する需要があります。これには、マイクオンアンカーがRTCストリームをプッシュプルし、マイク下の視聴者がRTCミキシングストリームをプルするプランが適しています。ここではミキシングロボットがミキシング指令を発行し、ミキシングされたストリームを RTC Engineルームにプッシュバックして、マイク下の視聴者がストリームをプルして視聴できるようにする必要があります。
説明:
このシナリオの推奨プラン:マイクオンアンカーがRTCをプッシュプルし、マイクオフの視聴者がRTCストリームミックスをプル。
KTVボイスチャットルームの具体的な技術的詳細と注意事項については、オンラインカラオケシナリオソリューションを参照してください。
インタラクションゲームルーム
人狼ゲーム、シナリオゲーム、PIAゲーム、真実か挑戦か、お絵描きクイズなど、このシナリオではゲームの流れに従ってルームを作成し、ゲームの進行に応じて業務側で話すプレイヤーの権限を制御し、順番に発言します。
インタラクティブゲームシナリオでは、一般的に参加者の数に制限があり、頻繁にマイクオン/オフが必要とされるため、マイクオンアンカーがRTCストリームをプッシュプルし、マイクオフの視聴者がRTCストリームをプルするという一般的な方法が適しています。ゲームの参加者は、いつでもマイクオンにして発言したり、マイクオフにしたりすることができ、キャラクターが死亡して強制的にマイクオフになり観戦するか、ルームから退出するまでです。
説明:
このシナリオの推奨プラン:マイクオンアンカーがRTCをプッシュプルし、マイクオフの視聴者がRTCシングルストリームをプル。
インタラクションゲームルームには通常、ローカルゲーム効果音の再生が含まれており、AEC処理及び音量タイプの選択に注意が必要です。
プランに含まれる製品
システム階層 | 製品名 | シナリオ用途 |
アクセス層 | 低遅延で高品質な多人数音声のリアルタイムインタラクションライブソリューションを提供し、ボイスチャットシナリオの基本的な基盤能力です。 | |
アクセス層 | グループ機能に基づくルーム管理、座席管理の提供、ライブルームの全員メッセージ、パブリックチャットメッセージなどのリッチメディアメッセージの送受信、およびカスタムシグナルなどの通信ニーズを実現します。 | |
クラウドサービス | Real-Time Communicationのリレー転送を提供し、メディアストリームの配信を加速するサービスを提供します。さらに、録画や不適切内容の検出などの追加機能も備えています。 | |
クラウドサービス | オーディオ・ビデオメディアに対して、制作・アップロード、保存、トランスコード、MPS、メディアAI、再生デリバリー、著作権保護などの一体化された高品質メディアサービスを提供します。 | |
データストレージ | オーディオ録音ファイル、オーディオクリップファイルのストレージサービスを提供します。 |