Angular library for the Agora Web SDK next-generation client from Agora.io enabling audio and video real-time communications based on Agora SD-RTN™ and implementing scenarios such as voice-only calls, video call, voice-only interactive broadcast, and video interactive broadcast.
Before using the Library, you need to:
- Get a valid Agora account. (Sign up for free.)
- Create a project in Agora Console and choose APP ID for authentication.
Run the following command to install the library.
npm i ngx-agora-sdk-ng
Here is the demo link. In this link you could see the features that are using ngx-agora-sdk-ng
library. We are working on it in these days and add amazing features. Acually we want show power of agora in demo project. You can make a project like Google meet.
Import NgxAgoraSdkNgModule from ngx-agora-sdk-ng
and add the module to the imports array with configuration.
- Replace your own appId in
agora-appId
.
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { NgxAgoraSdkNgModule } from 'ngx-agora-sdk-ng';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
NgxAgoraSdkNgModule.forRoot({
AppID: 'replace-agora-appId',
Video: { codec: 'h264', mode: 'rtc', role: 'host' }
})
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Import NgxAgoraSdkNgService from ngx-agora-sdk-ng
into your component or service to use.
import { Component } from '@angular/core';
import { NgxAgoraSdkNgService } from 'ngx-agora-sdk-ng';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'demo';
constructor(private agoraService: NgxAgoraSdkNgService) { }
}
join(channelName: string, token: string, uid?: string): IJoinChannel<IMediaTrack>;
joinVideo(channelName: string, token: string, uid?: string): IVideoJoinChannel<IVideoTrack>;
joinAudio(channelName: string, token: string, uid?: string): IAudioJoinChannel<IAudioTrack>;
leave(): Promise<any>;
getCameras(): Promise<MediaDeviceInfo[]>;
getMicrophones(): Promise<MediaDeviceInfo[]>;
getDevices(): Promise<MediaDeviceInfo[]>;
By using this method, you could observe remote user status, for instance if a user leave a chananel or connect it will raise.
onRemoteUsersStatusChange(): Observable<UserState>;
onRemoteUserJoined(): Observable<IRemoteUser>;
onRemoteUserLeft(): Observable<{ user: IRemoteUser, reason: string }>;
onRemoteVolumeIndicator(): Observable<Array<{ level: number, uid: number | string }>>;
onLocalNetworkQualityChange(): Observable<NetworkQuality>;
onLocalUserJoined(): Observable<{ track: IMediaTrack }>;
onLocalUserLeft(): Observable<{ user: IRemoteUser, reason: string }>;
Deployment notes |
---|
Due to security limits on HTTP addresses except 127.0.0.1, the library only supports HTTPS or http://localhost (http://127.0.0.1). If you deploy your project over HTTP, you can only visit your project at http://localhost(http://127.0.0.1). |
Made with ❤️