handleMethodCall method

Future handleMethodCall(
  1. 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}\'',
      );
  }
}