No Description

RtcEngine.ts 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import {
  2. NativeModules,
  3. NativeAppEventEmitter
  4. } from 'react-native';
  5. import {
  6. IRtcEngineOption, IRTCEngineEventScheduler,
  7. String, Integer
  8. } from "./types.d";
  9. const { Agora } = NativeModules;
  10. export default class RtcEngine extends Agora {
  11. static init(options: IRtcEngineOption): void {
  12. this.removeEmitter();
  13. super.init(options);
  14. }
  15. static joinChannel(channelName: String, uid?: Integer): void {
  16. super.joinChannel(channelName, uid);
  17. }
  18. static joinChannelWithToken(
  19. channelName: string, token?: String, uid?: Integer): void {
  20. super.joinChannelWithToken(token, channelName, uid);
  21. }
  22. static eventEmitter(eventScheduler: IRTCEngineEventScheduler) {
  23. this.listener && this.listener.remove();
  24. this.listener = NativeAppEventEmitter.addListener('agoraEvent', event => {
  25. const functor = (eventScheduler as any)[event['type']];
  26. functor && functor(event);
  27. });
  28. }
  29. static removeEmitter() {
  30. this.listener && this.listener.remove();
  31. }
  32. static enableLastmileTest() {
  33. super.enableLastmileTest();
  34. }
  35. static disableLastmileTest() {
  36. super.disableLastmileTest();
  37. }
  38. };