tencent cloud

Game Multimedia Engine

製品アップデート情報
製品紹介
製品概要
優位性のある特徴
製品機能
ユースケース
セキュリティコンプライアンス認証
初心者ガイド
SDKダウンロードガイド
製品機能体験
基本機能Demo
シーン化体験
コンソールガイド
使用量の表示
サービスの有効化
クイックスタート
Quick Integration of SDK
Quick Integration of Sample Project
基本機能開発ガイド
Authentication Key
リアルタイム音声ロール設定
音質設定
拡張機能開発ガイド
サーバー側のレコーディング
レンジボイス
3Dサウンド
効果音と伴奏
ネットワークオーディオストリーム転送ルーティング
カスタムメッセージチャネル
社内ファイアーフォール制限への対応について
Language Parameter Reference List
GMEルーム管理機能の導入
クライアントAPI
SDK for Unity
SDK for Unreal Engine
Cocos2D SDK
SDK for Windows
SDK for iOS
SDK for Android
SDK for macOS
H5 SDK
Electron SDK
SDK for Flutter
SDK Version Upgrade Guide
エラーコード
Toolchain
Server APIs
History
Introduction
API Category
Usage APIs
Recording APIs
Making API Requests
Voice Chat APIs
Application APIs
Data Types
Error Codes
よくある質問
製品機能質問
問題解決ガイド
課金について
Sample Projectの使用上の問題
一般的な質問
認証について
リアルタイム音声ルーム参加失敗について
リアルタイム音声利用時に音声が聞こえない問題とオーディオ関連について
ネットワークについて
ボイス・ツー・テキスト変換について
プロジェクトエクスポートについて
Service Agreement
Service Level Agreement
お問い合わせ
用語集
GME ポリシー
データ処理とセキュリティ契約
プライバシーポリシー
ドキュメントGame Multimedia Engine拡張機能開発ガイドネットワークオーディオストリーム転送ルーティング

ネットワークオーディオストリーム転送ルーティング

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-01-18 15:47:47
GME開発者がTencent Cloud GME製品APIのデバッグと導入を容易にするために、このドキュメントではGMEカスタマイズオーディオ転送ルーティング機能に適している使用参考ドキュメントを紹介します。

シナリオ

場面説明:2人の友達がチームを組んだ後、3人の知らない人をマッチングして大きなチームを組み、チーム全員の声を聞いて、チームの友達と話すような機能が必要です。
カスタムオーディオルーティング機能でそれを実装することができます。ここでは5人全員が同じ音声ルームに入り、音声ルーティングのインターフェース設定を行い、2人チームの音声のみまたは全ルームの音声が聞こえるように設定したり、2人チームの者のみに話が聞こえるように設定したり、全ルームの者に話が聞こえるように設定したりすることができます。
オーディオルール距離:SetServerAudioRouteSendOperateType(AUDIO_ROUTE_SEND_WHITE_LIST,"2人チームのlist",ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE,"2人チームのlist");
これにより、音声はlistに含まれる人にのみ送信されるととも、3人チームの音声のみが受信されます。




前提条件

リアルタイム音声サービスが有効になっていることサービス有効化ガイドをご参照ください。
GME SDK導入済み:コアインターフェースとリアルタイム音声インターフェースの導入を含みます。詳細については、Native SDKクイックスタートUnity SDKクイックスタートUnreal SDKクイックスタートをご参照ください。
GMEリアルタイム音声機能を使用して音声ルームへの参加に成功し、マイク(EnableMic)、スピーカー(EnableSpeaker)をオンにしました。

音声転送ルーティング機能の導入

オーディオ転送ルールの設定

このインターフェースを呼び出して音声転送ルールを設定します。このインターフェースは、入室のコールバックに成功したときに呼び出され、呼び出し後にこの入室が有効になり、退室後に無効になります。
ご注意:
発言禁止機能AddBlackListはネイティブに有効で、カスタムオーディオルーティングよりも優先されます。例えば、AはSetServerAudioRouteSendOperateTypeでBの発話のみを聞くように設定したが、AddBlackListを呼び出してBの発言を禁止した場合、AはBの声を聞くことができなくなります。

インターフェースのプロトタイプ

Unity
C++
Android
iOS
public abstract class ITMGRoom{
public abstract int SetServerAudioRouteSendOperateType(ITMG_SERVER_AUDIO_ROUTE_SEND_TYPE Sendtype, string[] OpenIDforSend, ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE Recvtype, string[] OpenIDforRecv);
}
virtual int SetServerAudioRoute(ITMG_SERVER_AUDIO_ROUTE_SEND_TYPE SendType, const char OpenIDforSend[][21], int OpenIDforSendSize, ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE RecvType,const char OpenIDforRecv[][21], int OpenIDforRecvSize) = 0;
public abstract int SetServerAudioRoute(ITMGContext.ITMG_SERVER_AUDIO_ROUTE_SEND_TYPE sendType, ArrayList<String> SendList, ITMGContext.ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE recvType, ArrayList<String> RecvList);
-(int)SetServerAudioRouteSendOperateType:(ITMG_SERVER_AUDIO_ROUTE_SEND_TYPE) Sendtype SendList:(NSArray *)OpenIDForSend RecvOperateType:(ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE) Recvtype RecvList:(NSArray *)OpenIDForRecv;

タイプの説明

ITMG_SERVER_AUDIO_ROUTE_SEND_TYPE
音声送信ルールを設定し、異なるルールを入力すると、異なる送信ルールが設定されます。
受信タイプ
効果
AUDIO_ROUTE_NOT_SEND_TO_ANYONE
ローカルからのアップリンクオーディオはバックグラウンドに送信されますが、バックグラウンドはそれをだれにも転送しません。これはご自身をミュートすることと同じです。このとき、パラメータOpenIDForSendは無効で、nullを入力すればよいです。
AUDIO_ROUTE_SEND_TO_ALL
ローカルからのアップリンクオーディオは全員に転送されます。このとき、パラメータOpenIDForSendは無効で、nullを入力すればよいです。
AUDIO_ROUTE_SEND_BLACK_LIST
ローカルからのアップリンクオーディオは、パラメータOpenIDForSendによって提供されるブラックリスト内の人には転送されません。
AUDIO_ROUTE_SEND_WHITE_LIST
ローカルからのアップリンクオーディオは、パラメータOpenIDForSendによって提供されるホワイトリスト内の人にのみ転送されます。
説明:
タイプにAUDIO_ROUTE_NOT_SEND_TO_ANYONEおよびAUDIO_ROUTE_SEND_TO_ALLが渡された場合、パラメータOpenIDForSendは有効でなく、nullを入力すればよいです。
タイプにAUDIO_ROUTE_SEND_BLACK_LISTが渡された場合、パラメータOpenIDForSendはブラックリストで、最大10個までサポートされます。
タイプにAUDIO_ROUTE_SEND_WHITE_LISTが渡された場合、パラメータOpenIDForSendはホワイトリストで、最大10個までサポートされます。
ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE
音声受信ルールを設定します。異なるルールが入力されると、異なる受信ルールが設定されます。
受信タイプ
効果
AUDIO_ROUTE_NOT_RECV_FROM_ANYONE
ローカルでは、すべてのオーディオを受け入れません。これはルーム内のスピーカー効果をオフにすることと同じです。このとき、パラメータOpenIDForSendは無効で、nullを入力すればよいです。
AUDIO_ROUTE_RECV_FROM_ALL
ローカルでは、全員のオーディオを受け入れます。このとき、パラメータOpenIDForSendは無効で、nullを入力すればよいです。
AUDIO_ROUTE_RECV_BLACK_LIST
ローカルでは、パラメータOpenIDForSendによって提供されるブラックリスト内の人のオーディオを受け入れません。
AUDIO_ROUTE_RECV_WHITE_LIST
ローカルでは、パラメータOpenIDForSendによって提供されるホワイトリスト内の人のオーディオのみ受け入れます。
説明:
タイプにAUDIO_ROUTE_NOT_RECV_FROM_ANYONEおよびAUDIO_ROUTE_RECV_FROM_ALLが渡された場合、パラメータOpenIDForSendは有効になりません。
タイプにAUDIO_ROUTE_RECV_BLACK_LISTが渡された場合、パラメータOpenIDForSendはブラックリストで、最大10個までサポートされます。
タイプにAUDIO_ROUTE_RECV_WHITE_LISTが渡された場合、パラメータOpenIDForSendはホワイトリストで、最大10個までサポートされます。

戻り値

インターフェースの戻り値がQAV_OKの場合、成功したことを示します。
コールバックが1004を返した場合、パラメータが間違っていることを示します。パラメータが正しいかどうかを再確認することをお勧めします。
コールバックが1001を返した場合は、動作が繰り返されることを示します。
コールバックが1201を返した場合は、ルームが存在しないことを示します。ルーム番号が正しいかどうかを確認することをお勧めします。
コールバックが10001と1005を返した場合は、インターフェースをもう一度呼び出すことをお勧めします。
返された結果の詳細について、エラーコードをご参照ください。

サンプルコード

実行ステートメント
@synthesize _sendListArray;
@synthesize _recvListArray;

int ret = [[[ITMGContext GetInstance] GetRoom] SetServerAudioRouteSendOperateType:SendType SendList:_sendListArray RecvOperateType:RecvType RecvList:_recvListArray];
if (ret != QAV_OK) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"audiorouteリストの更新に失敗しました" message:[NSString stringWithFormat:@"エラーコード:%d",ret] delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
コールバック
-(void)OnEvent:(ITMG_MAIN_EVENT_TYPE)eventType data:(NSDictionary *)data{
NSString *log = [NSString stringWithFormat:@"OnEvent:%d,data:%@", (int)eventType, data];
switch (eventType) {
case ITMG_MAIN_EVENT_TYPE_SERVER_AUDIO_ROUTE_EVENT:{
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"audioroute更新" message:[NSString stringWithFormat:@"結果:%@,sub_type: %@ errorinof: %@", data[@"result"],data[@"sub_type"],data[@"error_info"]] delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
}
default:
break;
}
}

オーディオ設定転送ルールの取得

このインターフェースを呼び出すとオーディオ転送ルールを取得します。呼び出し後、インターフェースはルールを返します。渡された配列パラメータは、対応するルールのopenIdを返します。

インターフェースのプロトタイプ

Unity
iOS
public abstract ITMG_SERVER_AUDIO_ROUTE_SEND_TYPE GetCurrentSendAudioRoute(List<string> OpenIDforSend);
public abstract ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE GetCurrentRecvAudioRoute(List<string> OpenIDforRecve);
-(ITMG_SERVER_AUDIO_ROUTE_SEND_TYPE)GetCurrentSendAudioRoute:(NSMutableArray *) OpenIDForSend;
-(ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE)GetCurrentRecvAudioRoute:(NSMutableArray *)OpenIDForRecv;

戻りルール

ITMG_SERVER_AUDIO_ROUTE_SEND_TYPE
受信タイプ
効果
AUDIO_ROUTE_NOT_SEND_TO_ANYONE
ローカルからのアップリンクオーディオはバックグラウンドに送信されますが、バックグラウンドはそれをだれにも転送しません。これはご自身をミュートすることと同じです
AUDIO_ROUTE_SEND_TO_ALL
ローカルからのアップリンクオーディオは全員に転送されます
AUDIO_ROUTE_SEND_BLACK_LIST
ローカルからのアップリンクオーディオはブラックリスト内の人には転送されません
AUDIO_ROUTE_SEND_WHITE_LIST
ローカルからのアップリンクオーディオはホワイトリスト内の人にのみ転送されます
AUDIO_ROUTE_RECV_INQUIRE_ERROR
取得にエラーが発生しました。ルームに参加したか、SDKが初期化されているかを確認します
ITMG_SERVER_AUDIO_ROUTE_RECV_TYPE
受信タイプ
効果
AUDIO_ROUTE_NOT_RECV_FROM_ANYONE
ローカルでは、すべてのオーディオを受け入れません。これはルーム内のスピーカー効果をオフにすることと同じです
AUDIO_ROUTE_RECV_FROM_ALL
ローカルでは、全員のオーディオを受け入れます
AUDIO_ROUTE_RECV_BLACK_LIST
ローカルでは、ブラックリスト内の人のオーディオを受け入れません
AUDIO_ROUTE_RECV_WHITE_LIST
ローカルでは、ホワイトリスト内の人のオーディオのみ受け入れます
AUDIO_ROUTE_RECV_INQUIRE_ERROR
取得にエラーが発生しました。ルームに参加したか、SDKが初期化されているかを確認します
ご注意:
SetServerAudioRouteSendOperateTypeインターフェースでAUDIO_ROUTE_RECV_INQUIRE_ERRORを使用しないでください。


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック