# Jazz SDK Electron

**Jazz** — это cервис видеоконференций. [Попробовать](https://clck.ru/38ud4Q) |
[Подробно о сервисе и услугах](https://clck.ru/38utof)

**Jazz SDK Electron** - это набор инструментов для работы Jazz SDK Web вместе с
ElectronJS.

**Jazz SDK Web** - это набор утилит низкого уровня для работы с сервисом
видеоконференций. Утилиты позволяют управлять комнатами в активных конференциях,
обрабатывать аудио и видео потоки пользователей, как локальных, так и
подключенных к конференции, а также настраивать устройства ввода/вывода.

Посмотреть полную информацию и ознакомиться с возможностями можно перейдя по
ссылке: [Jazz SDK Web](https://clck.ru/38utjZ)

## Лицензионное соглашение

[Лицензионное соглашение](https://clck.ru/35F8h3)

## Установка

```shell
npm install -S @salutejs/jazz-sdk-electron
```

## Демо

Веб-приложение, предназначенное для локального запуска, демонстрирует основные
возможности Jazz SDK.

[Пример использования](https://github.com/salute-developers/jazz-web-sdk-demo)

## Плагины

Плагины - это дополнительные модули, которые могут быть подключены к Jazz SDK
Electron для расширения его функциональности. Плагины могут взаимодействовать
друг с другом, обмениваясь данными и вызывая функции друг друга.

Плагины не являются обязательными для работы SDK. Базовая функциональность SDK
может быть использована без подключения плагинов. Однако, плагины могут
значительно расширить возможности SDK и упростить разработку приложений.

[Ознакомиться с плагинами и получить больше информации](https://clck.ru/38uy82)

#### Установка пакета с плагинами:

```shell
npm install -S @salutejs/jazz-sdk-electron-plugins
```

## Подключение

#### Main процесс

Для main процесса необходимо использовать соответствующее пространство `/main`.
Подключение `createJazzSdkElectronMain` выполняется после готовности приложения
начать создавать `BrowserWindow`

```js
import { createJazzSdkElectronMain } from '@salutejs/jazz-sdk-electron/main';
import { desktopCapturerPlugin } from '@salutejs/jazz-sdk-electron-plugins/main';
import { app } from 'electron';

...

await app.whenReady();

await createJazzSdkElectronMain({
  plugins: [desktopCapturerPlugin()],
});

```

#### Preload процесс

Для preload процесса необходимо использовать соответствующее пространство
`/preload`.

```js
import { desktopCapturerPlugin } from '@salutejs/jazz-sdk-electron-plugins/preload';
import { createJazzSdkElectronPreload } from '@salutejs/jazz-sdk-electron/preload';

createJazzSdkElectronPreload({
  plugins: [desktopCapturerPlugin()],
});
```
