• Stars
    star
    157
  • Rank 233,646 (Top 5 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 6 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Electron wrapper around the Agora RTC SDKs for Windows/macOS

NOTE: These sdk and samples only for the Agora Video 4.x APIs. For examples using previous releases please see the following branches:

Agora RTC SDK for Electron

Platform npm npm License License

✨ Features

  • πŸ“¦ Newly designed middle-tier API and Native C++ SDK.
  • πŸ›‘ Written in TypeScript with predictable static types.

πŸ–₯ Environment Support

  • 🌈 Support macOS x86-64 and arm64 (Electron 11+)
  • βš™οΈ Support Windows ia32 and x64
  • Electron: 4.x ~ latest
Chrome
macOS
Safari
Windows
Electron
Electron
x86 | arm64 ia32 | x64 4.0.0 ~ Latest

πŸ“¦ Install

In newest version you can define installation configuration in package.json (or .npmrc, while package.json has a higher priority), usually you can just provide "prebuilt", and "arch".

// package.json
{
  ...
  "agora_electron": {
    "prebuilt": true,
    "arch": "x64"
  }
  ...
}


// .npmrc
agora_electron_sdk_pre_built=true // defalut value is true
agora_electron_sdk_arch=x64 // only support windows:

Properties detail:

  • prebuilt whether to automatically download prebuilt NodeJS C++ Addon or build locally(which need to provide development env)
  • arch: If not set, the script will automatically choose the arch. only support windows
  • platform darwin or win32
## Automatic platform and architecture selection
npm install agora-electron-sdk

or

## or select 32 bit architecture on Windows
npm install --agora_electron_sdk_arch=ia32

## or select 64 bit architecture on Windows
npm install --agora_electron_sdk_arch=x64

πŸ”¨ Usage

import createAgoraRtcEngine from "agora-electron-sdk";

const rtcEngine = createAgoraRtcEngine();
rtcEngine.initialize({appId: "<your agora app id>"});

When using without electron-webpack

When using directly within a web electron project with custom webpack configuration, you may see errors when compiling. It's because you have not properly configured loader for node addon. A convenient way to skip the compile process is to set externals property of your webpack config to {"agora-electron-sdk": "commonjs2 agora-electron-sdk"}

πŸ”— Links

  • Document - Official document

  • Demo - A quick start demo based on Vue/React and this repo

  • Changelog - Attention to newest information

  • Release Notes - Attention to newest information

⌨️ Development

Build From Source Code

You will need to build Agora RTC Electron SDK from source if you want to work on a new feature/bug fix, try out the latest features which are not released yet, or maintain your own fork with patches that cannot be merged to the core.

Prerequisites

Windows

  • Python 2.7
  • Visual Studio Code C++ Desktop Develop Framework

MacOS

  • Python 2.7
  • XCode

Clone locally:

$ git clone [email protected]:AgoraIO-Extensions/Electron-SDK.git
$ cd Electron-SDK
$ npm install #or yarn

# build macOS
$ npm install --agora_electron_sdk_pre_built=false

# build  32 bit architecture on Windows
$ npm install --verbose --agora_electron_sdk_pre_built=false  --agora_electron_sdk_arch=ia32

# build  64 bit architecture on Windows
$ npm install --verbose --agora_electron_sdk_pre_built=false  --agora_electron_sdk_arch=x64

🀝 Contributing PRs Welcome

Read our contributing guide and let's build a better antd together. :)

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature)
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request