★ | 意味 |
ITMGContext | コアインターフェース |
ITMGRoom | ルーム関連インターフェース |
ITMGRoomManager | ルーム管理インターフェース |
ITMGAudioCtrl | オーディオ関連インターフェース |
ITMGAudioEffectCtrl | サウンドと伴奏関連インターフェース |
インターフェース | インターフェース意味 |
Init | GME初期化 |
Poll | イベントのコールバックをトリガー |
Pause | システムの一時停止 |
Resume | システムリカバリ |
Uninit | GMEの未初期化 |
using GME;
//class ITMGContextpublic abstract int Init(string sdkAppID, string openID);
パラメータ | タイプ | 意味 |
sdkAppId | string | |
openID | string | openIDはInt64型(stringに変換して渡す)のみに対応しており、ルールはApp開発者が独自に定め、App内で重複しないようにしてください。文字列をOpenidとして渡す必要がある場合は、チケットを提出をして開発者に連絡してください。| |
戻り値 | 処理 |
QAVError.OK= 0 | SDK初期化成功 |
AV_ERR_SDK_NOT_FULL_UPDATE=7015 | SDKファイルが完全であるかどうかをチェックし、削除後にSDKを再インポートすることをお勧めします |
int ret = ITMGContext.GetInstance().Init(sdkAppId, openID);//戻り値で初期化が成功したかどうかを判断するif (ret != QAVError.OK){Debug.Log("SDK初期化失敗:"+ret);return;}
ITMGContext public abstract int Poll();
public void Update(){ITMGContext.GetInstance().Poll();}
ITMGContext public abstract int Pause()
ITMGContext public abstract int Resume()
ITMGContext public abstract int Uninit()
インターフェース | インターフェース意味 |
GenAuthBuffer | ローカル認証の計算 |
EnterRoom | 入室 |
ExitRoom | ルームから退出します。 |
IsRoomEntered | 入室しているかの判断 |
SwitchRoom | ルームのすばやい切り替え |
QAVAuthBuffer GenAuthBuffer(int appId, string roomId, string openId, string key)
パラメータ | タイプ | 意味 |
appId | int | Tencent CloudコンソールからのAppID番号です。 |
roomId | string | 127文字まで入力可能なルームIDです。 |
openId | string | ユーザーIDです。Initの場合のopenIDと同じです。 |
key | string |
public static byte[] GetAuthBuffer(string AppID, string RoomID,string OpenId, string AuthKey){return QAVAuthBuffer.GenAuthBuffer(int.Parse(AppID), RoomID, OpenId, AuthKey);}
ITMGContext EnterRoom(string roomId, int roomType, byte[] authBuffer)
パラメータ | タイプ | 意味 |
roomId | string | 127文字まで入力可能なルームIDです |
roomType | ITMGRoomType | |
authBuffer | Byte[] | 認証コード |
ITMGContext.GetInstance().EnterRoom(strRoomId, ITMGRoomType.ITMG_ROOM_TYPE_FLUENCY, byteAuthbuffer);
public delegate void QAVEnterRoomComplete(int result, string error_info);public abstract event QAVEnterRoomComplete OnEnterRoomCompleteEvent;
//イベントを監視します:ITMGContext.GetInstance().OnEnterRoomCompleteEvent += new QAVEnterRoomComplete(OnEnterRoomComplete);//監視処理:void OnEnterRoomComplete(int err, string errInfo){if (err != 0) {ShowLoginPanel("エラーコード:" + err + "エラーメッセージ:" + errInfo);return;}else{//入室に成功}}
メッセージ | Data | 例 |
ITMG_MAIN_EVENT_TYPE_ENTER_ROOM | result; error_info | {"error_info":"","result":0} |
ITMG_MAIN_EVENT_TYPE_ROOM_DISCONNECT | result; error_info | {"error_info":"waiting timeout, please check your network","result":0} |
ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVENT_TYPE_ROOM_DISCONNECT
が表示され、この場合、SDKは自動的に再接続され、コールバックはITMG_MAIN_EVENT_TYPE_RECONNECT_START
です。再接続が成功するとITMG_MAIN_EVENT_RECONNECT_SUCCESS
がコールバックされます。エラーコードの値 | 原因と解決策 |
7006 | 認証失敗原因: AppIDが存在しないか、エラーが発生しました authbuff認証エラー 認証期限切れ OpenIdが仕様に準拠していません |
7007 | 他のルームにいます |
1001 | ルーム参加中でこの操作を繰り返しています。入室のコールバックが戻るまで、ルーム参加インターフェースを呼び出さないことをお勧めします |
1003 | ルームに参加してルームにいますが、もう1回ルーム参加インターフェースを呼び出しました |
1101 | SDKが初期化され、OpenIDがルールに準拠し、またはインターフェースが同じスレッドで呼び出され、Pollインターフェースが正常に呼び出されていることを確認してください |
ITMGContext ExitRoom()
ITMGContext.GetInstance().ExitRoom();
public delegate void QAVExitRoomComplete();public abstract event QAVExitRoomComplete OnExitRoomCompleteEvent;
イベントを監視します。ITMGContext.GetInstance().OnExitRoomCompleteEvent += new QAVExitRoomComplete(OnExitRoomComplete);監視処理:void OnExitRoomComplete(){//退室した後の処理}
ITMGContext abstract bool IsRoomEntered()
ITMGContext.GetInstance().IsRoomEntered();
public abstract int SwitchRoom(string targetRoomID, byte[] authBuffer);
パラメータ | タイプ | 意味 |
targetRoomID | String | 入室するルーム番号 |
authBuffer | byte[] | 入室するルーム番号で生成された新しい認証 |
インターフェース/通知 | 意味 |
ITMG_MAIN_EVNET_TYPE_USER_UPDATE | メンバー状態の変更通知 |
AddAudioBlackList | ルーム内の特定のメーバー発話をミュートします |
RemoveAudioBlackList | 発話ミュートを解除します |
event_id | 意味 | アプリケーション側保守コンテンツ |
EVENT_ID_ENDPOINT_ENTER | ルームに参加するメンバーがいます。その時点にルームに参加するopenidを返します | アプリケーション側保守メンバーリスト |
EVENT_ID_ENDPOINT_EXIT | ルームから退出するメンバーがいます。その時点でルームから退出するopenidを返します | アプリケーション側保守メンバーリスト |
EVENT_ID_ENDPOINT_HAS_AUDIO | オーディオパケットを送信するメンバーがいます。その時点でルーム内で発話しているopenidが返されます。このイベントでユーザーが発話しているか否かを判断し、声紋効果を示します | アプリケーション側通話保守メンバーリスト |
EVENT_ID_ENDPOINT_NO_AUDIO | オーディオパケットの送信を停止するメンバーがいます。その時点でルーム内で話を止めるopenidが返されます | アプリケーション側通話保守メンバーリスト |
public delegate void QAVEndpointsUpdateInfo(int eventID, int count, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)]string[] openIdList);public abstract event QAVEndpointsUpdateInfo OnEndpointsUpdateInfoEvent;//イベントを監視します:ITMGContext.GetInstance().OnEndpointsUpdateInfoEvent += new QAVEndpointsUpdateInfo(OnEndpointsUpdateInfo);//監視処理:void OnEndpointsUpdateInfo(int eventID, int count, string[] openIdList){//処理しますswitch (eventID){case EVENT_ID_ENDPOINT_ENTER://メンバーが入室しましたbreak;case EVENT_ID_ENDPOINT_EXIT://メンバーが退室しましたbreak;case EVENT_ID_ENDPOINT_HAS_AUDIO://メンバーがオーディオパッケージを送信していますbreak;case EVENT_ID_ENDPOINT_NO_AUDIO://メンバーがオーディオパッケージの送信を停止しましたbreak;default:break;}break;}
ITMGContext ITMGAudioCtrl AddAudioBlackList(String openId)
パラメータ | タイプ | 意味 |
openId | String | ブラックリストを追加するユーザーopenid |
ITMGContext.GetInstance().GetAudioCtrl ().AddAudioBlackList (openId);
ITMGContext ITMGAudioCtrl RemoveAudioBlackList(string openId)
パラメータ | タイプ | 意味 |
openId | String | ブラックリストから削除するユーザーopenid |
ITMGContext.GetInstance().GetAudioCtrl ().RemoveAudioBlackList (openId);
インターフェース | インターフェース意味 |
EnableMic | マイクをオン/オフにする |
GetMicState | マイク状態の取得 |
EnableAudioCaptureDevice | 収集デバイスをオン/オフにする |
IsAudioCaptureDeviceEnabled | 収集デバイスの状態を取得します |
EnableAudioSend | オーディオ上りのオン/オフ |
IsAudioSendEnabled | オーディオ上り状態の取得 |
GetMicLevel | マイクのリアルタイムボリュームの取得 |
GetSendStreamLevel | オーディオ上りのリアルタイムボリュームの取得 |
SetMicVolume | マイク音量を設定する |
GetMicVolume | マイク音量を取得する |
ITMGAudioCtrl EnableMic(bool isEnabled)
パラメータ | タイプ | 意味 |
isEnabled | boolean | マイクをオンにする場合、渡されるパラメータはtrueであり、マイクをオフにする場合、パラメータはfalseです |
// マイクの起動ITMGContext.GetInstance().GetAudioCtrl().EnableMic(true);
ITMGAudioCtrl GetMicState()
micToggle.isOn = ITMGContext.GetInstance().GetAudioCtrl().GetMicState();
ITMGAudioCtrl int EnableAudioCaptureDevice(bool isEnabled)
パラメータ | タイプ | 意味 |
isEnabled | bool | 収集デバイスをオンにする場合、渡されたパラメータはtrueであり、収集デバイスをオフにする場合、パラメータはfalseです |
//収集デバイスをオンにしますITMGContext.GetInstance().GetAudioCtrl().EnableAudioCaptureDevice(true);
ITMGAudioCtrl bool IsAudioCaptureDeviceEnabled()
bool IsAudioCaptureDevice = ITMGContext.GetInstance().GetAudioCtrl().IsAudioCaptureDeviceEnabled();
ITMGAudioCtrl int EnableAudioSend(bool isEnabled)
パラメータ | タイプ | 意味 |
isEnabled | bool | オーディオ上りをオンにする場合、渡されるパラメータはtrueであり、オーディオ上りをオフにする場合、パラメータはfalseです |
ITMGContext.GetInstance().GetAudioCtrl().EnableAudioSend(true);
ITMGAudioCtrl bool IsAudioSendEnabled()
bool IsAudioSend = ITMGContext.GetInstance().GetAudioCtrl().IsAudioSendEnabled();
ITMGAudioCtrl int GetMicLevel
ITMGContext.GetInstance().GetAudioCtrl().GetMicLevel();
ITMGAudioCtrl int GetSendStreamLevel()
int Level = ITMGContext.GetInstance().GetAudioCtrl().GetSendStreamLevel();
ITMGAudioCtrl SetMicVolume(int volume)
パラメータ | タイプ | 意味 |
volume | int | 値の範囲は0~200です。値が0の場合はミュート、値が100の場合は音量が増減しないことを示します。デフォルト値は100です。 |
int micVol = (int)(value * 100);ITMGContext.GetInstance().GetAudioCtrl().SetMicVolume (micVol);
ITMGAudioCtrl GetMicVolume()
ITMGContext.GetInstance().GetAudioCtrl().GetMicVolume();
インターフェース | インターフェース意味 |
EnableSpeaker | スピーカをオン/オフにする |
GetSpeakerState | スピーカー状態の取得 |
EnableAudioPlayDevice | 再生デバイスをオン/オフにする |
IsAudioPlayDeviceEnabled | 再生デバイスの状態の取得 |
EnableAudioRecv | オーディオ下りのオン/オフ |
IsAudioRecvEnabled | オーディオ上り状態の取得 |
GetSpeakerLevel | スピーカーのリアルタイムボリュームの取得 |
GetRecvStreamLevel | ほかのルームメンバーの下りリアルタイムボリュームの取得 |
SetSpeakerVolume | スピーカーボリュームを設定する |
GetSpeakerVolume | スピーカーボリュームを取得する |
ITMGAudioCtrl EnableSpeaker(bool isEnabled)
パラメータ | タイプ | 意味 |
isEnabled | bool | スピーカーをオフにする場合、渡されるパラメータはfalseであり、スピーカーをオンにする場合、パラメータはtrueです |
//スピーカーをオンにするITMGContext.GetInstance().GetAudioCtrl().EnableSpeaker(true);
ITMGAudioCtrl GetSpeakerState()
speakerToggle.isOn = ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerState();
ITMGAudioCtrl EnableAudioPlayDevice(bool isEnabled)
パラメータ | タイプ | 意味 |
isEnabled | bool | 再生デバイスをオフにする場合、渡すパラメータはfalseであり、再生デバイスをオンにする場合、パラメータはtrueです |
ITMGContext.GetInstance().GetAudioCtrl().EnableAudioPlayDevice(true);
ITMGAudioCtrl bool IsAudioPlayDeviceEnabled()
bool IsAudioPlayDevice = ITMGContext.GetInstance().GetAudioCtrl().IsAudioPlayDeviceEnabled();
ITMGAudioCtrl int EnableAudioRecv(bool isEnabled)
パラメータ | タイプ | 意味 |
isEnabled | bool | オーディオ下りをオンにする場合、渡されるパラメータはtrueであり、オーディオ下りをオフにする場合、パラメータはfalseです |
ITMGContext.GetInstance().GetAudioCtrl().EnableAudioRecv(true);
ITMGAudioCtrl bool IsAudioRecvEnabled()
bool IsAudioRecv = ITMGContext.GetInstance().GetAudioCtrl().IsAudioRecvEnabled();
ITMGAudioCtrl GetSpeakerLevel()
ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerLevel();
ITMGAudioCtrl int GetRecvStreamLevel(string openId)
パラメータ | タイプ | 意味 |
openId | string | ルームの他のメンバーのopenId |
int Level = ITMGContext.GetInstance().GetAudioCtrl().GetRecvStreamLevel(openId);
public abstract int SetSpeakerVolumeByOpenID(string openid, int volume);
パラメータ | タイプ | 意味 |
openId | String | 音量調整が必要なOpenID |
volume | int | パーセンテージ。[0~200]を推奨します。デフォルト値は100です |
ITMGAudioCtrl SetSpeakerVolume(int volume)
パラメータ | タイプ | 意味 |
volume | int | 音量を0~200で設定します。値が0の場合はミュート、値が100の場合は音量が増減しないことを示します。デフォルト値は100です。 |
int speVol = (int)(value * 100);ITMGContext.GetInstance().GetAudioCtrl().SetSpeakerVolume(speVol);
ITMGAudioCtrl GetSpeakerVolume()
ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerVolume();
インターフェース | インターフェース意味 |
GetMicListCount | マイクデバイスの数の取得 |
GetMicList | マイクデバイスの列挙 |
GetSpeakerListCount | スピーカーデバイスの数の取得 |
GetSpeakerList | スピーカーデバイスの列挙 |
SelectMic | マイクデバイスの選択 |
SelectSpeaker | スピーカーデバイスの選択 |
public abstract int GetMicListCount()
ITMGContext.GetInstance().GetAudioCtrl().GetMicListCount();
public abstract int GetMicList(out List<TMGAudioDeviceInfo> devicesInfo, int count)
パラメータ | タイプ | 意味 |
ppDeviceInfoList | TMGAudioDeviceInfo | デバイスリスト |
count | int | マイクデバイスの数の取得 |
TMGAudioDeviceInfoパラメータ | タイプ | 意味 |
m_strDeviceID | string | デバイス名 |
m_strDeviceID | string | デバイスID |
ITMGContext.GetInstance().GetAudioCtrl().GetMicList(devicesInfo,count);
public abstract int SelectMic(string micID);
パラメータ | タイプ | 意味 |
pMicID | string | マイクデバイスIDです。デバイスIDはGetMicListから返されたリストに含まれます。 |
string deviceID = DEVICE_ID_DEFAULT;if (index != 0){deviceID = listMicInfo[index - 1].m_strDeviceID;}ITMGContext.GetInstance().GetAudioCtrl().SelectMic(deviceID);selectedMicID = deviceID;
public abstract int GetSpeakerListCount();
ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerListCount();
public abstract int GetSpeakerList(out List<TMGAudioDeviceInfo> devicesInfo, int count)
パラメータ | タイプ | 意味 |
ppDeviceInfoList | TMGAudioDeviceInfo | デバイスリスト |
count | int | 取得したスピーカーデバイスの数 |
TMGAudioDeviceInfoパラメータ | タイプ | 意味 |
m_strDeviceID | string | デバイス名 |
m_strDeviceID | string | デバイスID |
int speakerCount = ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerListCount();Debug.LogFormat("speakerCount = {0}", speakerCount);if (speakerCount > 0){int ret = ITMGContext.GetInstance().GetAudioCtrl().GetSpeakerList(out listSpeakerInfo, speakerCount);Debug.LogFormat("GetSpeakerList ret = {0}", ret);if (ret != 0){listSpeakerInfo = null;}}}
public abstract int SelectSpeaker(string speaker);
パラメータ | タイプ | 意味 |
speaker | string | スピーカーのデバイスIDです。デバイスIDはGetSpeakerListから返されたリストに含まれます。 |
speakerDropdown = transform.Find("DevicePanel/SpeakerSelect").GetComponent<Dropdown>();if (speakerDropdown != null){speakerDropdown.onValueChanged.AddListener(delegate (int index){string deviceID = DEVICE_ID_DEFAULT;if (index != 0){deviceID = listSpeakerInfo[index - 1].m_strDeviceID;}ITMGContext.GetInstance().GetAudioCtrl().SelectSpeaker(deviceID);selectedSpeakerID = deviceID;});}
ITMGContext GetAudioCtrl EnableLoopBack(bool enable)
パラメータ | タイプ | 意味 |
enable | bool | 起動するかどうかの設定 |
ITMGContext.GetInstance().GetAudioCtrl().EnableLoopBack(true);
public delegate void QAVOnDeviceStateChangedEvent(int deviceType, string deviceId, bool openOrClose);public abstract event QAVOnDeviceStateChangedEvent OnDeviceStateChangedEvent;
パラメータ | タイプ | 意味 |
deviceType | int | 1:収集デバイスを示します 2:再生デバイスを示します |
deviceId | string | デバイスGUIDです。デバイス識別に使用され、Windows端末とMac端末のみに有効です |
openOrClose | bool | 収集デバイス/再生デバイスの使用または解除 |
イベントを監視します。ITMGContext.GetInstance().GetAudioCtrl().OnDeviceStateChangedEvent += new QAVAudioDeviceStateCallback(OnAudioDeviceStateChange);監視処理:void QAVAudioDeviceStateCallback(int deviceType, string deviceId, bool openOrClose){//デバイス占用とリリースイベント関連のコールバック処理}
ITMGContext ITMGRoom public int GetRoomType()
ITMGContext.GetInstance().GetRoom().GetRoomType();
ITMGContext ITMGRoom public int ChangeRoomType(ITMGRoomType roomtype)
パラメータ | タイプ | 意味 |
roomtype | ITMGRoomType | 切り替えたいルームのタイプです。ルームのオーディオタイプについて、EnterRoomインターフェースをご参照ください |
ITMGContext.GetInstance().GetRoom().ChangeRoomType(ITMG_ROOM_TYPE_FLUENCY);
|返されたパラメータ | 意味 |
roomtype | 切り替え後のroomtypeタイプを返します |
public abstract event QAVCallback OnChangeRoomtypeCallback;public abstract event QAVOnRoomTypeChangedEvent OnRoomTypeChangedEvent;
//イベントを監視します:ITMGContext.GetInstance().OnRoomTypeChangedEvent += new QAVOnRoomTypeChangedEvent(OnRoomTypeChangedEvent);//監視処理:void OnRoomTypeChangedEvent(int roomtype){ShowWarnning (string.Format ("RoomTypeChanged current:{0}",roomtype));}
public delegate void QAVOnRoomTypeChangedEvent(int roomtype);public abstract event QAVOnRoomTypeChangedEvent OnRoomTypeChangedEvent;
//イベントを監視します:ITMGContext.GetInstance().OnRoomTypeChangedEvent += new QAVOnRoomTypeChangedEvent(OnRoomTypeChangedEvent);//監視処理:void OnRoomTypeChangedEvent(int roomtype){//ルームタイプ変更後の処理}
パラメータ | タイプ | 意味 |
weight | int | 範囲は1~50で、数値が50の場合、音質評点は優秀、数値が1の場合、音質評点は不可で、ほとんど使えません。数値が0の場合は初期値(意味なし)を示します。通常、数値が30以下になると、ネットワークが悪いので、切り替えたほうがいいとユーザーに通知します。 |
loss | double | 上りパケット損失率。 |
delay | int | オーディオ届け遅延時間(ms)です。 |
ITMGContext abstract string GetSDKVersion()
ITMGContext.GetInstance().GetSDKVersion();
ITMGContext SetLogLevel(ITMG_LOG_LEVEL levelWrite, ITMG_LOG_LEVEL levelPrint)
パラメータ | タイプ | 意味 |
levelWrite | ITMG_LOG_LEVEL | ログの書き込むレベルを設定します。TMG_LOG_LEVEL_NONEは書き込まないことを示し、デフォルトはTMG_LOG_LEVEL_INFOです。 |
levelPrint | ITMG_LOG_LEVEL | ログのプリントレベルを設定します。TMG_LOG_LEVEL_NONEはプリントしないことを示し、デフォルトはTMG_LOG_LEVEL_ERRORです。 |
ITMG_LOG_LEVEL | 意味 |
TMG_LOG_LEVEL_NONE | ログをプリントしない |
TMG_LOG_LEVEL_ERROR | エラーログをプリントします(デフォルト) |
TMG_LOG_LEVEL_INFO | お知らせ通知ログをプリントします |
TMG_LOG_LEVEL_DEBUG | 開発デバッグログをプリントします |
TMG_LOG_LEVEL_VERBOSE | 高頻度ログをプリントする |
ITMGContext.GetInstance().SetLogLevel(TMG_LOG_LEVEL_INFO,TMG_LOG_LEVEL_INFO);
プラットフォーム | パス |
Windows | %appdata%\\Tencent\\GME\\ProcessName |
iOS | Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents |
Android | /sdcard/Android/data/xxx.xxx.xxx/files |
Mac | /Users/username/Library/Containers/xxx.xxx.xxx/Data/Documents |
ITMGContext SetLogPath(string logDir)
パラメータ | タイプ | 意味 |
logDir | String | パス |
ITMGContext.GetInstance().SetLogPath(path);
ITMGRoom GetQualityTips()
string tips = ITMGContext.GetInstance().GetRoom().GetQualityTips();
この記事はお役に立ちましたか?