ITMG_MAIN_EVNET_TYPE_ROOM_MANAGEMENT_OPERATOR
를 통해 처리됩니다. 콜백에 대한 자세한 내용은 콜백 처리를 참고하십시오.유형 | API |
캡처 제어 | EnableMic, EnableAudioCaptureDevice, EnableAudioSend |
재생 제어 | EnableSpeaker, EnableAudioPlayDevice, EnableAudioRecv |
디바이스 상태 가져오기 | GetMicState, GetSpeakerState |
민감한 API | 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
라는 이벤트와 함께 OnEvent를 사용하여 처리됩니다. 이 이벤트는 아래와 같이 매개변수 구조를 반환합니다.매개변수 | 유형 | 설명 |
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 ? "on" : "off"), Toast.LENGTH_LONG).show();} else {Toast.makeText(getActivity(), String.format("id:%s에게 발송한 %s%s 작업, 결과:%d", ReceiverID, operatorArr.get(OperateType), OperateValue ? "on" : "off", 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("On", new DialogInterface.OnClickListener() {//확인 버튼의 클릭 이벤트 설정@Overridepublic void onClick(DialogInterface dialog, int which) {mSwitchCapture.setChecked(true);ITMGContext.GetInstance(getActivity()).GetAudioCtrl().EnableAudioCaptureDevice(true);}});dialog.setNegativeButton("Off", 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("On", new DialogInterface.OnClickListener() {//확인 버튼의 클릭 이벤트 설정@Overridepublic void onClick(DialogInterface dialog, int which) {mSwitchSend.setChecked(true);ITMGContext.GetInstance(getActivity()).GetAudioCtrl().EnableAudioSend(true);}});dialog.setNegativeButton("Off", 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("On", new DialogInterface.OnClickListener() {//확인 버튼의 클릭 이벤트 설정@Overridepublic void onClick(DialogInterface dialog, int which) {mSwitchCapture.setChecked(true);mSwitchSend.setChecked(true);ITMGContext.GetInstance(getActivity()).GetAudioCtrl().EnableMic(true);}});dialog.setNegativeButton("Off", 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?"on":"off"), 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?"on":"off",Result), Toast.LENGTH_LONG).show();} else if (OperateValue == false) {Toast.makeText(getActivity(), String.format("id:%s(으)로부터 %s%s 작업 수신, 결과:%d",SenderID,operatorArr.get(OperateType),OperateValue?"on":"off",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?@"on":@"off"];UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"방 관리 작업" message:alterString delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];[alert show];}else{NSString *alterString = [NSString stringWithFormat:@"id:%@에게 발송한 %@%@작업, 결과:%@",ReceiverID,OperateValue.boolValue?@"on":@"off",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?@"on":@"off"];UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"방 관리 작업" message:alterString delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];[alert show];}else{NSString *alterString = [NSString stringWithFormat:@"id:%@(으)로부터 %@%@ 작업 수신, 결과:%@",SenderID,OperateValue.boolValue?@"on":@"off",operatorArr[OperateType.intValue],Result];UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"방 관리 작업" message:alterString delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:nil];[alert show];}}}}break;}
문제 해결에 도움이 되었나요?