Sin descripción

RtcEngine.ts 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import {
  2. NativeModules,
  3. NativeAppEventEmitter,
  4. EmitterSubscription
  5. } from 'react-native';
  6. import {
  7. IOption, IVideoOption,
  8. IEventScheduler, IPublisherConfig,
  9. ILiveTranscoding, ICallback,
  10. String, Number
  11. } from "./types.d";
  12. const { Agora } = NativeModules;
  13. export default class RtcEngine {
  14. private static listener: EmitterSubscription = null;
  15. static init(options: IOption): void {
  16. this.removeEmitter();
  17. Agora.init(options);
  18. }
  19. static joinChannel(channelName: String, uid?: Number): void {
  20. Agora.joinChannel(channelName, uid);
  21. }
  22. static joinChannelWithToken(
  23. channelName: string, token?: String, uid?: Number): void {
  24. Agora.joinChannelWithToken(token, channelName, uid);
  25. }
  26. static eventEmitter(eventScheduler: IEventScheduler) {
  27. this.listener && this.listener.remove();
  28. this.listener = NativeAppEventEmitter.addListener('agoraEvent', event => {
  29. const functor = (eventScheduler as any)[event['type']];
  30. functor && functor(event);
  31. });
  32. }
  33. static removeEmitter() {
  34. this.listener && this.listener.remove();
  35. }
  36. static enableLastmileTest() {
  37. Agora.enableLastmileTest();
  38. }
  39. static disableLastmileTest() {
  40. Agora.disableLastmileTest();
  41. }
  42. static leaveChannel() {
  43. Agora.leaveChannel();
  44. }
  45. static destroy() {
  46. Agora.destroy();
  47. }
  48. static setupLocalVideo(options: IVideoOption) {
  49. Agora.setupLocalVideo(options);
  50. }
  51. static setupRemoteVideo(options: IVideoOption) {
  52. Agora.setupRemoteVideo(options);
  53. }
  54. static startPreview() {
  55. Agora.startPreview();
  56. }
  57. static stopPreview() {
  58. Agora.stopPreview();
  59. }
  60. static configPublisher(options: IPublisherConfig) {
  61. Agora.configPublisher(options);
  62. }
  63. static setLiveTranscoding(options: ILiveTranscoding) {
  64. Agora.setLiveTranscoding(options);
  65. }
  66. static setLocalRenderMode(mode: number) {
  67. Agora.setLocalRenderMode(mode);
  68. }
  69. static setRemoteRenderMode(mode: number) {
  70. Agora.setRemoteRenderMode(mode);
  71. }
  72. static enableAudioVolumeIndication(interval: number, smooth: number) {
  73. Agora.enableAudioVolumeIndication(interval, smooth);
  74. }
  75. static switchCamera() {
  76. Agora.switchCamera();
  77. }
  78. static enableVideo() {
  79. Agora.enableVideo();
  80. }
  81. static disableVideo() {
  82. Agora.disableVideo();
  83. }
  84. static setEnableSpeakerphone(status: boolean) {
  85. Agora.setEnableSpeakerphone(status);
  86. }
  87. static muteLocalAudioStream(status: boolean) {
  88. Agora.muteLocalAudioStream(status);
  89. }
  90. static muteRemoteAudioStream(uid: number, status: boolean) {
  91. Agora.muteRemoteAudioStream(uid, status);
  92. }
  93. static setCameraTorchOn(status: boolean) {
  94. Agora.setCameraTorchOn(status);
  95. }
  96. static setCameraAutoFocusFaceModeEnabled(status: boolean) {
  97. Agora.setCameraAutoFocusFaceModeEnabled(status);
  98. }
  99. static setDefaultAudioRouteToSpeakerphone(status: boolean) {
  100. Agora.setDefaultAudioRouteToSpeakerphone(status);
  101. }
  102. static muteLocalVideoStream(status: boolean) {
  103. Agora.muteLocalVideoStream(status);
  104. }
  105. static enableLocalVideo(status: boolean) {
  106. Agora.enableLocalVideo(status);
  107. }
  108. static muteAllRemoteVideoStreams(status: boolean) {
  109. Agora.muteAllRemoteVideoStreams(status);
  110. }
  111. static muteRemoteVideoStream(status: boolean) {
  112. Agora.muteAllRemoteVideoStreams(status);
  113. }
  114. static createDataStream(reliable: boolean, ordered: boolean, callback: ICallback<void>) {
  115. Agora.createDataStream(reliable, ordered, callback);
  116. }
  117. static sendStreamMessage(streamId: number, data: any, callback: ICallback<void>) {
  118. Agora.sendStreamMessage(streamId, data, callback);
  119. }
  120. static getSdkVersion(callback: ICallback<void>) {
  121. Agora.getSdkVersion(callback);
  122. }
  123. };