handleMethodCall method
- MethodCall call
Handles method calls over the MethodChannel of this plugin. Note: Check the "federated" architecture for a new way of doing this: https://flutter.dev/go/federated-plugins
Implementation
Future<dynamic> handleMethodCall(MethodCall call) async {
// var args = <String, dynamic>{};
//print("*### [sdk] metho ${call.method}");
switch (call.method) {
case 'createEngineWithProfile':
if (call.arguments['profile'] != null &&
call.arguments['profile']['appSign'] != null) {
throw PlatformException(
code: 'Unimplemented',
details:
'zego_rtc_engine for web doesn\'t support appSign, Please remove it',
);
}
ZegoFlutterEngine.setEventHandler(
allowInterop((String event, dynamic data) {
_evenController.add({'methodName': event, 'data': data});
}));
return createEngineWithProfile(call.arguments['profile']);
case 'destroyEngine':
return destroyEngine();
case 'setLogConfig':
return presetLogConfig(call.arguments['config']);
case 'getVersion':
return getVersion();
case 'setEngineConfig':
return setEngineConfig(call.arguments['config']);
case 'setPluginVersion':
return;
case 'setRoomScenario':
return setRoomScenario(call.arguments['scenario']);
case 'setRoomMode':
return setRoomMode(call.arguments['mode']);
case 'setGeoFence':
return setGeoFence(call.arguments['type'], call.arguments['areaList']);
case 'setCloudProxyConfig':
return setCloudProxyConfig(call.arguments['proxyList'],
call.arguments['token'], call.arguments['enable']);
// case 'setLocalProxyConfig': // 参数跟native接口有差异,web 需要统一接入、logger 域名,Flutter对外接口需要改声明才能兼容。
// return setLocalProxyConfig(
// call.arguments['proxyList'], call.arguments['enable']);
case 'callExperimentalAPI':
return callExperimentalAPI(call.arguments['params']);
//////////////////////////////房间相关//////////////////////////////////
case 'loginRoom':
return loginRoom(call.arguments['roomID'], call.arguments['user'],
call.arguments['config']);
case 'logoutRoom':
return logoutRoom(call.arguments['roomID']);
case 'renewToken':
return renewToken(call.arguments['roomID'], call.arguments['token']);
case 'setRoomExtraInfo':
return setRoomExtraInfo(call.arguments['roomID'], call.arguments['key'],
call.arguments['value']);
case 'switchRoom':
return switchRoom(call.arguments['fromRoomID'],
call.arguments['toRoomID'], call.arguments['config']);
//////////////////////////////推流相关//////////////////////////////////
case 'startPublishingStream':
return startPublishingStream(call.arguments["streamID"],
call.arguments["config"], call.arguments["channel"]);
case 'stopPublishingStream':
return stopPublishingStream(call.arguments["channel"]);
case 'setStreamExtraInfo':
return setStreamExtraInfo(
call.arguments['extraInfo'], call.arguments['channel']);
case 'setVideoConfig':
return setVideoConfig(
call.arguments["config"], call.arguments["channel"]);
case 'getVideoConfig':
return getVideoConfig(call.arguments["channel"]);
case 'setAudioConfig':
return setAudioConfig(
call.arguments["config"], call.arguments["channel"]);
case 'getAudioConfig':
return getAudioConfig(call.arguments["channel"]);
case 'setVideoMirrorMode':
return setVideoMirrorMode(
call.arguments["mirrorMode"], call.arguments["channel"]);
case 'startPreview':
return startPreview(
call.arguments['canvas'], call.arguments["channel"]);
case 'stopPreview':
return stopPreview(call.arguments["channel"]);
case 'mutePublishStreamVideo':
return mutePublishStreamVideo(
call.arguments["mute"], call.arguments["channel"]);
case 'mutePublishStreamAudio':
return mutePublishStreamAudio(
call.arguments["mute"], call.arguments["channel"]);
case 'setStreamAlignmentProperty':
return setStreamAlignmentProperty(
call.arguments["alignment"], call.arguments["channel"]);
case 'enableTrafficControl':
return enableTrafficControl(
call.arguments["enable"], call.arguments["channel"]);
case 'setMinVideoBitrateForTrafficControl':
return setMinVideoBitrateForTrafficControl(call.arguments["bitrate"],
call.arguments["mode"], call.arguments["channel"]);
case 'setTrafficControlFocusOn':
return setTrafficControlFocusOn(
call.arguments["mode"], call.arguments["channel"]);
case 'muteMicrophone':
return muteMicrophone(call.arguments["mute"]);
case 'isMicrophoneMuted':
return isMicrophoneMuted();
case 'setSEIConfig':
return setSEIConfig(call.arguments['config']);
case 'sendSEI':
return sendSEI(call.arguments['data'], call.arguments['dataLength'],
call.arguments['channel']);
case 'setLowlightEnhancement':
return setLowlightEnhancement(
call.arguments['mode'], call.arguments['channel']);
case 'setVideoSource':
return setVideoSource(call.arguments['source'],
call.arguments['instanceID'], call.arguments['channel']);
case 'setAudioSource':
return setAudioSource(
call.arguments['source'], call.arguments['channel']);
case 'enableHardwareEncoder':
return enableHardwareEncoder(call.arguments['enable']);
case 'addPublishCdnUrl':
return addPublishCdnUrl(
call.arguments['streamID'], call.arguments['targetURL']);
case 'removePublishCdnUrl':
return removePublishCdnUrl(
call.arguments['streamID'], call.arguments['targetURL']);
//////////////////////////////拉流相关//////////////////////////////////
case 'startPlayingStream':
return startPlayingStream(call.arguments["streamID"],
call.arguments["canvas"], call.arguments["config"]);
case 'stopPlayingStream':
return stopPlayingStream(call.arguments["streamID"]);
case 'setPlayVolume':
return setPlayVolume(
call.arguments["streamID"], call.arguments["volume"]);
case 'setAllPlayStreamVolume':
return setAllPlayStreamVolume(call.arguments["volume"]);
case 'mutePlayStreamAudio':
return mutePlayStreamAudio(
call.arguments['streamID'], call.arguments['mute']);
case 'mutePlayStreamVideo':
return mutePlayStreamVideo(
call.arguments['streamID'], call.arguments['mute']);
case 'muteAllPlayAudioStreams':
return muteAllPlayAudioStreams(call.arguments['mute']);
case 'muteAllPlayVideoStreams':
return muteAllPlayVideoStreams(call.arguments['mute']);
case 'updatePlayingCanvas':
return updatePlayingCanvas(
call.arguments["streamID"], call.arguments["canvas"]);
// case 'enableHardwareDecoder':
// return enableHardwareDecoder(call.arguments["enable"]);
//////////////////////////////消息相关//////////////////////////////////
case 'sendBroadcastMessage':
return sendBroadcastMessage(
call.arguments["roomID"], call.arguments["message"]);
case 'sendBarrageMessage':
return sendBarrageMessage(
call.arguments['roomID'], call.arguments['message']);
case 'sendCustomCommand':
return sendCustomCommand(call.arguments['roomID'],
call.arguments['command'], call.arguments['toUserList']);
case 'createRealTimeSequentialDataManager':
return createRealTimeSequentialDataManager(call.arguments['roomID']);
case 'destroyRealTimeSequentialDataManager':
return destroyRealTimeSequentialDataManager(call.arguments['index']);
case 'dataManagerStartBroadcasting':
return startBroadcasting(
call.arguments['index'], call.arguments['streamID']);
case 'dataManagerStopBroadcasting':
return stopBroadcasting(
call.arguments['index'], call.arguments['streamID']);
case 'dataManagerStartSubscribing':
return startSubscribing(
call.arguments['index'], call.arguments['streamID']);
case 'dataManagerStopSubscribing':
return stopSubscribing(
call.arguments['index'], call.arguments['streamID']);
case 'dataManagerSendRealTimeSequentialData':
return sendRealTimeSequentialData(call.arguments['index'],
call.arguments['data'], call.arguments['streamID']);
//////////////////////////////混流相关//////////////////////////////////
case 'startMixerTask':
return startMixerTask(call.arguments);
case 'stopMixerTask':
return stopMixerTask(call.arguments["taskID"]);
case 'startAutoMixerTask':
return startAutoMixerTask(call.arguments);
case 'stopAutoMixerTask':
return stopAutoMixerTask(call.arguments);
//////////////////////////////前处理相关//////////////////////////////////
case 'setCaptureVolume':
return setCaptureVolume(call.arguments["volume"]);
case 'enableAEC':
return enableAEC(call.arguments["enable"]);
case 'enableAGC':
return enableAGC(call.arguments["enable"]);
case 'enableANS':
return enableANS(call.arguments["enable"]);
case 'startEffectsEnv':
return startEffectsEnv();
case 'stopEffectsEnv':
return stopEffectsEnv();
case 'enableEffectsBeauty':
return enableEffectsBeauty(call.arguments['enable']);
case 'setEffectsBeautyParam':
return setEffectsBeautyParam(call.arguments['param']);
// case 'setVoiceChangerPreset':
// return setVoiceChangerPreset(call.arguments['preset']);
// case 'setVoiceChangerParam':
// return setVoiceChangerPreset(call.arguments['pitch']);
// case 'setReverbPreset':
// return setReverbPreset(call.arguments['prese']);
// case 'enableVirtualStereo':
// return enableVirtualStereo(
// call.arguments['enable'], call.arguments['angle']);
//////////////////////////////设备管理相关/////////////////////////////////
case 'enableCamera':
return enableCamera(
call.arguments["enable"], call.arguments["channel"]);
case 'useFrontCamera':
return useFrontCamera(
call.arguments["enable"], call.arguments["channel"]);
case 'destroyPlatformView':
return destroyPlatformView(call.arguments["viewID"]);
case 'getAudioDeviceList':
return getAudioDeviceList(call.arguments['type']);
case 'getVideoDeviceList':
return getVideoDeviceList();
case 'useVideoDevice':
return useVideoDevice(
call.arguments['deviceID'], call.arguments['channel']);
case 'useAudioDevice':
return useAudioDevice(
call.arguments['type'], call.arguments['deviceID']);
case 'useAudioOutputDevice':
return useAudioOutputDevice(
call.arguments['mediaID'], call.arguments['deviceID']);
case 'startSoundLevelMonitor':
return startSoundLevelMonitor(call.arguments['config']);
case 'stopSoundLevelMonitor':
return stopSoundLevelMonitor();
case 'getScreenCaptureSources':
return;
case 'createScreenCaptureSource':
return createScreenCaptureSource(
call.arguments['sourceId'], call.arguments['sourceType']);
case 'destroyScreenCaptureSource':
return destroyScreenCaptureSource(call.arguments['index']);
case 'startCaptureScreenCaptureSource':
return startCaptureScreen(
call.arguments['index'], call.arguments['config']);
case 'stopCaptureScreenCaptureSource':
return stopCaptureScreen(call.arguments['index']);
//////////////////////////////播放器相关/////////////////////////////////
case 'createMediaPlayer':
return createMediaPlayer();
case 'mediaPlayerSetPlayerCanvas':
return mediaPlayerSetPlayerCanvas(
call.arguments['index'], call.arguments['canvas']);
case 'mediaPlayerLoadResource':
return mediaPlayerLoadResource(
call.arguments['index'], call.arguments['path']);
case 'meidaPlayerLoadResourceWithPosition':
return mediaPlayerLoadResource(call.arguments['index'],
call.arguments['path'], call.arguments['startPosition']);
case 'mediaPlayerLoadResourceFromMediaData':
return mediaPlayerLoadResourceFromMediaData(call.arguments['index'],
call.arguments['mediaData'], call.arguments['startPosition']);
case 'mediaPlayerLoadCopyrightedMusicResourceWithPosition':
return mediaPlayerLoadCopyrightedMusicResourceWithPosition(
call.arguments['index'],
call.arguments['resourceID'],
call.arguments['startPosition']);
case 'mediaPlayerSetAudioTrackIndex':
return mediaPlayerSetAudioTrackIndex(
call.arguments['index'], call.arguments['trackIndex']);
case 'mediaPlayerEnableRepeat':
return mediaPlayerEnableRepeat(
call.arguments['index'], call.arguments['enable']);
case 'mediaPlayerStart':
return mediaPlayerStart(call.arguments['index']);
case 'mediaPlayerPause':
return mediaPlayerPause(call.arguments['index']);
case 'mediaPlayerStop':
return mediaPlayerStop(call.arguments['index']);
case 'mediaPlayerResume':
return mediaPlayerResume(call.arguments['index']);
case 'mediaPlayerSetPlaySpeed':
return mediaPlayerSetPlaySpeed(
call.arguments['index'], call.arguments['speed']);
case 'mediaPlayerMuteLocal':
return mediaPlayerMuteLocal(
call.arguments['index'], call.arguments['mute']);
case 'mediaPlayerEnableAux':
return mediaPlayerEnableAux(
call.arguments['index'], call.arguments['enable']);
case 'destroyMediaPlayer':
return destroyMediaPlayer(call.arguments['index']);
case 'mediaPlayerSetVolume':
return mediaPlayerSetVolume(
call.arguments['index'], call.arguments['volume']);
case 'mediaPlayerGetTotalDuration':
return mediaPlayerGetTotalDuration(call.arguments['index']);
case 'mediaPlayerSeekTo':
return mediaPlayerSeekTo(
call.arguments['index'], call.arguments['millisecond']);
//////////////////////////////版权音乐相关/////////////////////////////////
case 'createCopyrightedMusic':
return createCopyrightedMusic();
case 'destroyCopyrightedMusic':
return destroyCopyrightedMusic();
case 'copyrightedMusicInitCopyrightedMusic':
return copyrightedMusicInitCopyrightedMusic(call.arguments["config"]);
case 'copyrightedMusicSendExtendedRequest':
return copyrightedMusicSendExtendedRequest(
call.arguments["command"], call.arguments["params"]);
case 'copyrightedMusicRequestResource':
return copyrightedMusicRequestResource(
call.arguments["config"], call.arguments["type"]);
case 'copyrightedMusicRequestResourceV2':
return copyrightedMusicRequestResourceV2(call.arguments["config"]);
case 'copyrightedMusicGetSharedResource':
return copyrightedMusicGetSharedResource(
call.arguments["config"], call.arguments["type"]);
case 'copyrightedMusicGetSharedResourceV2':
return copyrightedMusicGetSharedResourceV2(call.arguments["config"]);
case 'copyrightedMusicGetLrcLyric':
return copyrightedMusicGetLrcLyric(
call.arguments["songID"], call.arguments["vendorID"]);
case 'copyrightedMusicGetKrcLyricByToken':
return copyrightedMusicGetKrcLyricByToken(call.arguments["krcToken"]);
case 'copyrightedMusicDownload':
return copyrightedMusicDownload(call.arguments["resourceID"]);
case 'copyrightedMusicClearCache':
return copyrightedMusicClearCache();
case 'copyrightedMusicGetStandardPitch':
return copyrightedMusicGetStandardPitch(call.arguments["resourceID"]);
case 'copyrightedMusicGetCurrentPitch':
return copyrightedMusicGetCurrentPitch(call.arguments["resourceID"]);
case 'copyrightedMusicSetScoringLevel':
return copyrightedMusicSetScoringLevel(call.arguments["level"]);
case 'copyrightedMusicStartScore':
return copyrightedMusicStartScore(call
.arguments["resourceID"]); // ,call.arguments["pitchValueInterval"]
case 'copyrightedMusicStopScore':
return copyrightedMusicStopScore(call.arguments["resourceID"]);
case 'copyrightedMusicPauseScore':
return copyrightedMusicPauseScore(call.arguments["resourceID"]);
case 'copyrightedMusicResumeScore':
return copyrightedMusicResumeScore(call.arguments["resourceID"]);
case 'copyrightedMusicGetPreviousScore':
return copyrightedMusicGetPreviousScore(call.arguments["resourceID"]);
case 'copyrightedMusicGetAverageScore':
return copyrightedMusicGetAverageScore(call.arguments["resourceID"]);
case 'copyrightedMusicGetTotalScore':
return copyrightedMusicGetTotalScore(call.arguments["resourceID"]);
case 'copyrightedMusicGetFullScore':
return copyrightedMusicGetFullScore(call.arguments["resourceID"]);
case 'takePlayStreamSnapshot':
return takePlayStreamSnapshot(call.arguments['streamID']);
case 'startAudioDataObserver':
return startAudioDataObserver(
call.arguments["observerBitMask"], call.arguments["param"]);
case 'stopAudioDataObserver':
return stopAudioDataObserver();
default:
throw PlatformException(
code: 'Unimplemented',
details:
'zego_rtc_engine for web doesn\'t implement \'${call.method}\'',
);
}
}