ITMG_MAIN_EVNET_TYPE_ROOM_MANAGEMENT_OPERATOR
によってコールバックされます。コールバックの詳細については、コールバック処理をご参照ください。タイプ | インターフェース |
収集制御 | EnableMic、EnableAudioCaptureDevice、EnableAudioSend |
再生制御 | EnableSpeaker、EnableAudioPlayDevice、EnableAudioRecv |
機器状態の取得 | GetMicState、GetSpeakerState |
敏感なインターフェース | ForbidUserOperation |
public abstract int EnableMic(boolean isEnabled,String receiverID);
-(QAVResult)EnableMic:(BOOL)enable Receiver:(NSString *)receiverID;
パラメータ | タイプ | 意味 |
enable | BOOL | YES:特定のユーザーのマイクをオンにします。NO:特定のユーザーのマイクをオフにします |
receiverID | NSString* | ターゲットユーザーOpenIdを入力します |
public abstract int EnableAudioSend(boolean isEnabled,String receiverID);
-(QAVResult)EnableAudioSend:(BOOL)enable Receiver:(NSString *)receiverID;
パラメータ | タイプ | 意味 |
enable | BOOL | YES:特定のユーザーのアップリンクをオンにします。NO:特定のユーザーのアップリンクをオフにします |
receiverID | NSString* | ターゲットユーザーOpenIdを入力します |
public abstract int EnableAudioCaptureDevice(boolean isEnabled,String receiverID);
-(QAVResult)EnableAudioCaptureDevice:(BOOL)enabled Receiver:(NSString *)receiverID;
パラメータ | タイプ | 意味 |
enable | BOOL | YES:特定のユーザーのオーディオ収集ハードウェアデバイスをオンにします。NO:特定のユーザーのオーディオ収集ハードウェアデバイスをオフにします |
receiverID | NSString* | ターゲットユーザーOpenIdを入力します |
public abstract int EnableSpeaker(boolean isEnabled,String receiverID);
-(QAVResult)EnableSpeaker:(BOOL)enable Receiver:(NSString *)receiverID;
パラメータ | タイプ | 意味 |
enable | BOOL | YES:特定のユーザーのスピーカーをオンにします。NO:特定のユーザーのスピーカーをオフにします |
receiverID | NSString* | ターゲットユーザーOpenIdを入力します |
public abstract int EnableAudioRecv(boolean isEnabled,String receiverID);
-(QAVResult)EnableAudioRecv:(BOOL)enabled Receiver:(NSString *)receiverID;
パラメータ | タイプ | 意味 |
enable | BOOL | YES:特定のユーザーのダウンリンクをオンにします。NO:特定のユーザーのダウンリンクをオフにします |
receiverID | NSString* | ターゲットユーザーOpenIdを入力します |
public abstract int EnableAudioPlayDevice(boolean isEnabled,String receiverID);
-(QAVResult)EnableAudioPlayDevice:(BOOL)enabled Receiver:(NSString *)receiverID;
パラメータ | タイプ | 意味 |
enable | BOOL | YES:特定のユーザーのオーディオ再生ハードウェアデバイスをオンにします。NO:特定のユーザーのオーディオ再生ハードウェアデバイスをオフにします |
receiverID | NSString* | ターゲットユーザーOpenIdを入力します |
public abstract int GetMicState(String receiverID);
-(QAVResult)GetMicState:(NSString *)receiverID;
パラメータ | タイプ | 意味 |
receiverID | NSString* | ターゲットユーザーOpenIdを入力します |
public abstract int GetSpeakerState(String receiverID);
-(QAVResult)GetSpeakerState:(NSString *)receiverID;
public abstract int ForbidUserOperation(boolean isEnabled,String receiverID);
-(QAVResult)ForbidUserOperation:(BOOL)enable Receiver:(NSString *)receiverID;
パラメータ | タイプ | 意味 |
enable | BOOL | YES:特定ユーザーによるデバイスの操作を禁止します。NO:特定ユーザーによるデバイスの操作を許可します |
receiverID | NSString* | ターゲットユーザーOpenIdを入力します |
ITMG_MAIN_EVNET_TYPE_ROOM_MANAGEMENT_OPERATOR
で、イベントは次のような構造体を返します。パラメータ | タイプ | 意味 |
SenderID | NSString | イベント送信者IDです。自身のOpenIdと同じ場合は、ローカルから送信されたコマンドです |
ReceiverID | NSString | イベント受信者IDです。自身のOpenIdと同じ場合は、ローカルが受信したコマンドです |
OperateType | NSNumber | イベントタイプ |
Result | NSNumber | イベント結果です。0は成功を意味します |
OperateValue | NSNumber | コマンドの詳細 |
数値 | イベントタイプ | 意味 |
0 | ITMG_ROOM_MANAGEMENT_CAPTURE_OP | 収集デバイスのハードウェアコールバックの制御 |
1 | ITMG_ROOM_MANAGEMENT_PLAY_OP | 再生デバイスのハードウェアコールバックの制御 |
2 | ITMG_ROOM_MANAGEMENT_AUDIO_SEND_OP | アップリンクコールバックの制御 |
3 | ITMG_ROOM_MANAGEMENT_AUDIO_REC_OP | ダウンリンクコールバックの制御 |
4 | ITMG_ROOM_MANAGEMENT_MIC_OP | マイクコールバックの制御 |
5 | ITMG_ROOM_MANAGEMENT_PLAY_OP | スピーカーコールバックの制御 |
6 | ITMG_ROOM_MANAGEMENT_GET_MIC_STATE | マイク状態の取得 |
7 | ITMG_ROOM_MANAGEMENT_GET_SPEAKER_STATE | スピーカー状態の取得 |
8 | ITMG_ROOM_MANAGERMENT_FOBIN_OP | マイクイベントとスピーカーイベントの操作を禁止します |
メンバー | 意味 |
boolValue | 0:コマンドをオフにします。1:コマンドをオンにします |
public void OnEvent(ITMGContext.ITMG_MAIN_EVENT_TYPE type, Intent data) {if (ITMGContext.ITMG_MAIN_EVENT_TYPE.ITMG_MAIN_EVNET_TYPE_ROOM_MANAGEMENT_OPERATOR== type) {ArrayList<String> operatorArr = new ArrayList<String>();operatorArr.add("収集");operatorArr.add("再生");operatorArr.add("上り");operatorArr.add("下り");operatorArr.add("上り収集");operatorArr.add("下り再生");operatorArr.add("mic状態");operatorArr.add("spk状態");operatorArr.add("mic/speak操作禁止");String SenderID = data.getStringExtra("SenderID");String ReceiverID = data.getStringExtra("ReceiverID");int OperateType = data.getIntExtra("OperateType",-1000);int Result =data.getIntExtra("Result",-1000);boolean OperateValue = data.getBooleanExtra("OperateValue",false);if (OperateType == -1000 ||Result == -1000) {return;}if (SenderID.equals(identifier)) {if (OperateType == ITMGContext.ITMG_ROOM_MANAGEMENT_GET_MIC_STATE || OperateType == ITMGContext.ITMG_ROOM_MANAGEMENT_GET_SPEAKER_STATE) {Toast.makeText(getActivity(), String.format("id:%sへの%s操作、結果:%s", ReceiverID, operatorArr.get(OperateType), OperateValue ? "オン" : "オフ"), Toast.LENGTH_LONG).show();}else{Toast.makeText(getActivity(), String.format("id:%sへの%s%s操作、結果:%d", ReceiverID, operatorArr.get(OperateType), OperateValue ? "オン" : "オフ", Result), Toast.LENGTH_LONG).show();}} else if (ReceiverID.equals(identifier)||ReceiverID.equals("ALL")) {if (Result == 0) {switch (OperateType) {case ITMGContext.ITMG_ROOM_MANAGEMENT_CAPTURE_OP:{if (!OperateValue) {mSwitchCapture.setChecked(OperateValue);}else{AlertDialog.Builder dialog = new AlertDialog.Builder (getActivity()); //オブジェクト作成dialog.setTitle("機器収集をオンにしますか");dialog.setMessage("");dialog.setCancelable(false);dialog.setPositiveButton("オン", new DialogInterface.OnClickListener() {//OKボタンのクリックイベントを設定@Overridepublic void onClick(DialogInterface dialog, int which) {mSwitchCapture.setChecked(true);ITMGContext.GetInstance(getActivity()).GetAudioCtrl().EnableAudioCaptureDevice(true);}});dialog.setNegativeButton("オフ", new DialogInterface.OnClickListener() {//キャンセルボタンのクリックイベントを設定@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();}}break;case ITMGContext.ITMG_ROOM_MANAGEMENT_PLAY_OP:{mSwitchPlayDevice.setChecked(OperateValue);}break;case ITMGContext.ITMG_ROOM_MANAGEMENT_AUDIO_SEND_OP:{if (!OperateValue) {mSwitchSend.setChecked(OperateValue);}else{AlertDialog.Builder dialog = new AlertDialog.Builder (getActivity()); //オブジェクト作成dialog.setTitle("上りをオンにしますか");dialog.setMessage("");dialog.setCancelable(false);dialog.setPositiveButton("オン", new DialogInterface.OnClickListener() {//OKボタンのクリックイベントを設定@Overridepublic void onClick(DialogInterface dialog, int which) {mSwitchSend.setChecked(true);ITMGContext.GetInstance(getActivity()).GetAudioCtrl().EnableAudioSend(true);}});dialog.setNegativeButton("オフ", new DialogInterface.OnClickListener() {//キャンセルボタンのクリックイベントを設定@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();}}break;case ITMGContext.ITMG_ROOM_MANAGEMENT_AUDIO_REC_OP:{mSwitchRecv.setChecked(OperateValue);}break;case ITMGContext.ITMG_ROOM_MANAGEMENT_MIC_OP:{if (!OperateValue) {mSwitchCapture.setChecked(OperateValue);mSwitchSend.setChecked(OperateValue);}else{AlertDialog.Builder dialog = new AlertDialog.Builder (getActivity()); //オブジェクト作成dialog.setTitle("収集と上りをオンにしますか");dialog.setMessage("");dialog.setCancelable(false);dialog.setPositiveButton("オン", new DialogInterface.OnClickListener() {//OKボタンのクリックイベントを設定@Overridepublic void onClick(DialogInterface dialog, int which) {mSwitchCapture.setChecked(true);mSwitchSend.setChecked(true);ITMGContext.GetInstance(getActivity()).GetAudioCtrl().EnableMic(true);}});dialog.setNegativeButton("オフ", new DialogInterface.OnClickListener() {//キャンセルボタンのクリックイベントを設定@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();}}break;case ITMGContext.ITMG_ROOM_MANAGEMENT_SPEAKER_OP:{mSwitchPlayDevice.setChecked(OperateValue);mSwitchRecv.setChecked(OperateValue);}break;}}if (OperateType == ITMGContext.ITMG_ROOM_MANAGEMENT_GET_MIC_STATE || OperateType == ITMGContext.ITMG_ROOM_MANAGEMENT_GET_SPEAKER_STATE){Toast.makeText(getActivity(), String.format("id:%sからの%s操作、結果:%s",SenderID,operatorArr.get(OperateType),OperateValue?"オン":"オフ"), Toast.LENGTH_LONG).show();}else if (OperateType == ITMGContext.ITMG_ROOM_MANAGEMENT_SPEAKER_OP || OperateType == ITMGContext.ITMG_ROOM_MANAGEMENT_AUDIO_REC_OP|| OperateType == ITMGContext.ITMG_ROOM_MANAGEMENT_PLAY_OP|| OperateType == ITMGContext.ITMG_ROOM_MANAGERMENT_FOBIN_OP){Toast.makeText(getActivity(), String.format("id:%sからの%s%s操作、結果:%d",SenderID,operatorArr.get(OperateType),OperateValue?"オン":"オフ",Result), Toast.LENGTH_LONG).show();} else if (OperateValue == false) {Toast.makeText(getActivity(), String.format("id:%sからの%s%s操作、結果:%d",SenderID,operatorArr.get(OperateType),OperateValue?"オン":"オフ",Result), Toast.LENGTH_LONG).show();}}}
-(void)OnEvent:(ITMG_MAIN_EVENT_TYPE)eventType data:(NSDictionary *)data{NSString *log = [NSString stringWithFormat:@"OnEvent:%d,data:%@", (int)eventType, data];[self showLog:log];NSLog(@"====%@====", log);switch (eventType) {case ITMG_MAIN_EVNET_TYPE_ROOM_MANAGEMENT_OPERATOR:{NSArray *operatorArr = @[@"収集",@"再生",@"上り",@"下り",@"上り収集",@"下り再生",@"メンバー追放",@"mic状態",@"spk状態",@"禁止操作mic/speak"];// _openIdNSString *SenderID = [data objectForKey:@"SenderID"];NSString *ReceiverID = [data objectForKey:@"ReceiverID"];NSNumber *OperateType = [data objectForKey:@"OperateType"];NSNumber *Result = [data objectForKey:@"Result"];NSNumber *OperateValue = [data objectForKey:@"OperateValue"];///自分が出したコマンドif ([SenderID isEqualToString:_openId]) {if (OperateType.intValue == ITMG_ROOM_MANAGEMENT_GET_MIC_STATE || OperateType.intValue == ITMG_ROOM_MANAGEMENT_GET_SPEAKER_STATE) {NSString *alterString = [NSString stringWithFormat:@"id:%@への%@操作、結果:%@",ReceiverID,operatorArr[OperateType.intValue],OperateValue.boolValue?@"オン":@"オフ"];UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ルーム管理操作" message:alterString delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];[alert show];}else{NSString *alterString = [NSString stringWithFormat:@"id:%@への%@%@操作、結果:%@",ReceiverID,OperateValue.boolValue?@"オン":@"オフ",operatorArr[OperateType.intValue],Result];UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ルーム管理操作" message:alterString delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];[alert show];}}else if([ReceiverID isEqualToString:_openId] ){ //他人からのコマンドif (Result.intValue == 0) {switch (OperateType.intValue) {case ITMG_ROOM_MANAGEMENT_CAPTURE_OP:{[_micSwitch setOn:OperateValue.boolValue animated:true];}break;case ITMG_ROOM_MANAGEMENT_PLAY_OP:{[_speakerSwitch setOn:OperateValue.boolValue animated:true];}break;case ITMG_ROOM_MANAGEMENT_AUDIO_SEND_OP:{[_sendSwitch setOn:OperateValue.boolValue animated:true];}break;case ITMG_ROOM_MANAGEMENT_AUDIO_REC_OP:{[_recvSwitch setOn:OperateValue.boolValue animated:true];}break;case ITMG_ROOM_MANAGEMENT_MIC_OP:{[_micSwitch setOn:OperateValue.boolValue animated:true];[_sendSwitch setOn:OperateValue.boolValue animated:true];}break;case ITMG_ROOM_MANAGEMENT_SPEAKER_OP:{[_speakerSwitch setOn:OperateValue.boolValue animated:true];[_recvSwitch setOn:OperateValue.boolValue animated:true];}break;default:break;}if (OperateType.intValue == ITMG_ROOM_MANAGEMENT_GET_MIC_STATE || OperateType.intValue == ITMG_ROOM_MANAGEMENT_GET_SPEAKER_STATE) {NSString *alterString = [NSString stringWithFormat:@"id:%@からの%@操作、結果:%@",SenderID,operatorArr[OperateType.intValue],OperateValue.boolValue?@"オン":@"オフ"];UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ルーム管理操作" message:alterString delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];[alert show];}else{NSString *alterString = [NSString stringWithFormat:@"id:%@からの%@%@操作、結果:%@",SenderID,OperateValue.boolValue?@"オン":@"オフ",operatorArr[OperateType.intValue],Result];UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ルーム管理操作" message:alterString delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];[alert show];}}}}break;}
この記事はお役に立ちましたか?