agora-electron-sdk 0.0.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/CHANGELOG.md +315 -0
  2. package/LICENSE +21 -0
  3. package/README.md +143 -0
  4. package/gulpfile.js +52 -0
  5. package/js/AgoraSdk.js +64 -0
  6. package/js/Decoder/gpu-utils.js +74 -0
  7. package/js/Decoder/index.js +172 -0
  8. package/js/Private/AgoraBase.js +3985 -0
  9. package/js/Private/AgoraMediaBase.js +1014 -0
  10. package/js/Private/AgoraMediaPlayerTypes.js +316 -0
  11. package/js/Private/IAgoraH265Transcoder.js +36 -0
  12. package/js/Private/IAgoraLog.js +78 -0
  13. package/js/Private/IAgoraMediaEngine.js +32 -0
  14. package/js/Private/IAgoraMediaPlayer.js +16 -0
  15. package/js/Private/IAgoraMediaPlayerSource.js +3 -0
  16. package/js/Private/IAgoraMediaRecorder.js +10 -0
  17. package/js/Private/IAgoraMediaStreamingSource.js +74 -0
  18. package/js/Private/IAgoraMusicContentCenter.js +157 -0
  19. package/js/Private/IAgoraRhythmPlayer.js +62 -0
  20. package/js/Private/IAgoraRtcEngine.js +982 -0
  21. package/js/Private/IAgoraRtcEngineEx.js +19 -0
  22. package/js/Private/IAgoraSpatialAudio.js +24 -0
  23. package/js/Private/IAudioDeviceManager.js +20 -0
  24. package/js/Private/extension/AgoraBaseExtension.js +3 -0
  25. package/js/Private/extension/AgoraMediaBaseExtension.js +2 -0
  26. package/js/Private/extension/AgoraMediaPlayerTypesExtension.js +2 -0
  27. package/js/Private/extension/IAgoraH265TranscoderExtension.js +2 -0
  28. package/js/Private/extension/IAgoraLogExtension.js +2 -0
  29. package/js/Private/extension/IAgoraMediaEngineExtension.js +2 -0
  30. package/js/Private/extension/IAgoraMediaPlayerExtension.js +2 -0
  31. package/js/Private/extension/IAgoraMediaPlayerSourceExtension.js +2 -0
  32. package/js/Private/extension/IAgoraMediaRecorderExtension.js +2 -0
  33. package/js/Private/extension/IAgoraMusicContentCenterExtension.js +2 -0
  34. package/js/Private/extension/IAgoraRhythmPlayerExtension.js +2 -0
  35. package/js/Private/extension/IAgoraRtcEngineExExtension.js +2 -0
  36. package/js/Private/extension/IAgoraRtcEngineExtension.js +2 -0
  37. package/js/Private/extension/IAgoraSpatialAudioExtension.js +2 -0
  38. package/js/Private/extension/IAudioDeviceManagerExtension.js +2 -0
  39. package/js/Private/impl/AgoraBaseImpl.js +23 -0
  40. package/js/Private/impl/AgoraMediaBaseImpl.js +149 -0
  41. package/js/Private/impl/IAgoraH265TranscoderImpl.js +116 -0
  42. package/js/Private/impl/IAgoraMediaEngineImpl.js +337 -0
  43. package/js/Private/impl/IAgoraMediaPlayerImpl.js +950 -0
  44. package/js/Private/impl/IAgoraMediaPlayerSourceImpl.js +73 -0
  45. package/js/Private/impl/IAgoraMediaRecorderImpl.js +47 -0
  46. package/js/Private/impl/IAgoraMusicContentCenterImpl.js +422 -0
  47. package/js/Private/impl/IAgoraRtcEngineExImpl.js +1042 -0
  48. package/js/Private/impl/IAgoraRtcEngineImpl.js +5167 -0
  49. package/js/Private/impl/IAgoraSpatialAudioImpl.js +358 -0
  50. package/js/Private/impl/IAudioDeviceManagerImpl.js +375 -0
  51. package/js/Private/internal/AgoraH265TranscoderInternal.js +62 -0
  52. package/js/Private/internal/AgoraMediaBaseInternal.js +15 -0
  53. package/js/Private/internal/AudioDeviceManagerInternal.js +44 -0
  54. package/js/Private/internal/IrisApiEngine.js +424 -0
  55. package/js/Private/internal/LocalSpatialAudioEngineInternal.js +7 -0
  56. package/js/Private/internal/MediaEngineInternal.js +122 -0
  57. package/js/Private/internal/MediaPlayerInternal.js +194 -0
  58. package/js/Private/internal/MediaRecorderInternal.js +70 -0
  59. package/js/Private/internal/MusicContentCenterInternal.js +139 -0
  60. package/js/Private/internal/RtcEngineExInternal.js +430 -0
  61. package/js/Private/ipc/main.js +21 -0
  62. package/js/Private/ipc/renderer.js +21 -0
  63. package/js/Private/ti/AgoraBase-ti.js +40 -0
  64. package/js/Private/ti/AgoraMediaBase-ti.js +75 -0
  65. package/js/Private/ti/AgoraMediaPlayerTypes-ti.js +5 -0
  66. package/js/Private/ti/IAgoraH265Transcoder-ti.js +40 -0
  67. package/js/Private/ti/IAgoraLog-ti.js +5 -0
  68. package/js/Private/ti/IAgoraMediaEngine-ti.js +5 -0
  69. package/js/Private/ti/IAgoraMediaPlayer-ti.js +38 -0
  70. package/js/Private/ti/IAgoraMediaPlayerSource-ti.js +50 -0
  71. package/js/Private/ti/IAgoraMediaRecorder-ti.js +5 -0
  72. package/js/Private/ti/IAgoraMediaStreamingSource-ti.js +5 -0
  73. package/js/Private/ti/IAgoraMusicContentCenter-ti.js +42 -0
  74. package/js/Private/ti/IAgoraRhythmPlayer-ti.js +5 -0
  75. package/js/Private/ti/IAgoraRtcEngine-ti.js +141 -0
  76. package/js/Private/ti/IAgoraRtcEngineEx-ti.js +5 -0
  77. package/js/Private/ti/IAgoraSpatialAudio-ti.js +5 -0
  78. package/js/Private/ti/IAudioDeviceManager-ti.js +5 -0
  79. package/js/Renderer/AgoraView.js +161 -0
  80. package/js/Renderer/CapabilityManager.js +99 -0
  81. package/js/Renderer/IRenderer.js +136 -0
  82. package/js/Renderer/IRendererCache.js +75 -0
  83. package/js/Renderer/RendererCache.js +100 -0
  84. package/js/Renderer/RendererManager.js +301 -0
  85. package/js/Renderer/WebCodecsRenderer/index.js +109 -0
  86. package/js/Renderer/WebCodecsRendererCache.js +115 -0
  87. package/js/Renderer/WebGLRenderer/index.js +314 -0
  88. package/js/Renderer/WebGLRenderer/webgl-utils.js +1337 -0
  89. package/js/Renderer/YUVCanvasRenderer/index.js +46 -0
  90. package/js/Renderer/index.js +17 -0
  91. package/js/Types.js +67 -0
  92. package/js/Utils.js +187 -0
  93. package/package.json +167 -0
  94. package/scripts/bootstrap.js +29 -0
  95. package/scripts/build.js +37 -0
  96. package/scripts/buildJS.js +14 -0
  97. package/scripts/checkElectron.js +43 -0
  98. package/scripts/clean.js +16 -0
  99. package/scripts/download.js +105 -0
  100. package/scripts/downloadPrebuild.js +199 -0
  101. package/scripts/getConfig.js +73 -0
  102. package/scripts/logger.js +32 -0
  103. package/scripts/synclib.js +69 -0
  104. package/scripts/util.js +47 -0
  105. package/scripts/zipBuild.js +40 -0
  106. package/ts/AgoraSdk.ts +54 -0
  107. package/ts/Decoder/gpu-utils.ts +92 -0
  108. package/ts/Decoder/index.ts +206 -0
  109. package/ts/Private/AgoraBase.ts +5511 -0
  110. package/ts/Private/AgoraMediaBase.ts +1764 -0
  111. package/ts/Private/AgoraMediaPlayerTypes.ts +464 -0
  112. package/ts/Private/IAgoraH265Transcoder.ts +73 -0
  113. package/ts/Private/IAgoraLog.ts +91 -0
  114. package/ts/Private/IAgoraMediaEngine.ts +316 -0
  115. package/ts/Private/IAgoraMediaPlayer.ts +744 -0
  116. package/ts/Private/IAgoraMediaPlayerSource.ts +137 -0
  117. package/ts/Private/IAgoraMediaRecorder.ts +25 -0
  118. package/ts/Private/IAgoraMediaStreamingSource.ts +81 -0
  119. package/ts/Private/IAgoraMusicContentCenter.ts +455 -0
  120. package/ts/Private/IAgoraRhythmPlayer.ts +67 -0
  121. package/ts/Private/IAgoraRtcEngine.ts +7306 -0
  122. package/ts/Private/IAgoraRtcEngineEx.ts +992 -0
  123. package/ts/Private/IAgoraSpatialAudio.ts +250 -0
  124. package/ts/Private/IAudioDeviceManager.ts +342 -0
  125. package/ts/Private/extension/AgoraBaseExtension.ts +14 -0
  126. package/ts/Private/extension/AgoraMediaBaseExtension.ts +1 -0
  127. package/ts/Private/extension/AgoraMediaPlayerTypesExtension.ts +1 -0
  128. package/ts/Private/extension/IAgoraH265TranscoderExtension.ts +39 -0
  129. package/ts/Private/extension/IAgoraLogExtension.ts +1 -0
  130. package/ts/Private/extension/IAgoraMediaEngineExtension.ts +62 -0
  131. package/ts/Private/extension/IAgoraMediaPlayerExtension.ts +64 -0
  132. package/ts/Private/extension/IAgoraMediaPlayerSourceExtension.ts +1 -0
  133. package/ts/Private/extension/IAgoraMediaRecorderExtension.ts +59 -0
  134. package/ts/Private/extension/IAgoraMusicContentCenterExtension.ts +34 -0
  135. package/ts/Private/extension/IAgoraRhythmPlayerExtension.ts +1 -0
  136. package/ts/Private/extension/IAgoraRtcEngineExExtension.ts +1 -0
  137. package/ts/Private/extension/IAgoraRtcEngineExtension.ts +64 -0
  138. package/ts/Private/extension/IAgoraSpatialAudioExtension.ts +1 -0
  139. package/ts/Private/extension/IAudioDeviceManagerExtension.ts +1 -0
  140. package/ts/Private/impl/AgoraBaseImpl.ts +39 -0
  141. package/ts/Private/impl/AgoraMediaBaseImpl.ts +237 -0
  142. package/ts/Private/impl/IAgoraH265TranscoderImpl.ts +152 -0
  143. package/ts/Private/impl/IAgoraMediaEngineImpl.ts +491 -0
  144. package/ts/Private/impl/IAgoraMediaPlayerImpl.ts +1169 -0
  145. package/ts/Private/impl/IAgoraMediaPlayerSourceImpl.ts +94 -0
  146. package/ts/Private/impl/IAgoraMediaRecorderImpl.ts +59 -0
  147. package/ts/Private/impl/IAgoraMusicContentCenterImpl.ts +562 -0
  148. package/ts/Private/impl/IAgoraRtcEngineExImpl.ts +1672 -0
  149. package/ts/Private/impl/IAgoraRtcEngineImpl.ts +7352 -0
  150. package/ts/Private/impl/IAgoraSpatialAudioImpl.ts +495 -0
  151. package/ts/Private/impl/IAudioDeviceManagerImpl.ts +443 -0
  152. package/ts/Private/internal/AgoraH265TranscoderInternal.ts +97 -0
  153. package/ts/Private/internal/AgoraMediaBaseInternal.ts +15 -0
  154. package/ts/Private/internal/AudioDeviceManagerInternal.ts +46 -0
  155. package/ts/Private/internal/IrisApiEngine.ts +598 -0
  156. package/ts/Private/internal/LocalSpatialAudioEngineInternal.ts +3 -0
  157. package/ts/Private/internal/MediaEngineInternal.ts +190 -0
  158. package/ts/Private/internal/MediaPlayerInternal.ts +311 -0
  159. package/ts/Private/internal/MediaRecorderInternal.ts +100 -0
  160. package/ts/Private/internal/MusicContentCenterInternal.ts +208 -0
  161. package/ts/Private/internal/RtcEngineExInternal.ts +647 -0
  162. package/ts/Private/ipc/main.ts +22 -0
  163. package/ts/Private/ipc/renderer.ts +21 -0
  164. package/ts/Private/ti/AgoraBase-ti.ts +16 -0
  165. package/ts/Private/ti/AgoraMediaBase-ti.ts +58 -0
  166. package/ts/Private/ti/AgoraMediaPlayerTypes-ti.ts +11 -0
  167. package/ts/Private/ti/IAgoraH265Transcoder-ti.ts +16 -0
  168. package/ts/Private/ti/IAgoraLog-ti.ts +11 -0
  169. package/ts/Private/ti/IAgoraMediaEngine-ti.ts +11 -0
  170. package/ts/Private/ti/IAgoraMediaPlayer-ti.ts +14 -0
  171. package/ts/Private/ti/IAgoraMediaPlayerSource-ti.ts +26 -0
  172. package/ts/Private/ti/IAgoraMediaRecorder-ti.ts +11 -0
  173. package/ts/Private/ti/IAgoraMediaStreamingSource-ti.ts +11 -0
  174. package/ts/Private/ti/IAgoraMusicContentCenter-ti.ts +18 -0
  175. package/ts/Private/ti/IAgoraRhythmPlayer-ti.ts +11 -0
  176. package/ts/Private/ti/IAgoraRtcEngine-ti.ts +119 -0
  177. package/ts/Private/ti/IAgoraRtcEngineEx-ti.ts +11 -0
  178. package/ts/Private/ti/IAgoraSpatialAudio-ti.ts +11 -0
  179. package/ts/Private/ti/IAudioDeviceManager-ti.ts +11 -0
  180. package/ts/Renderer/AgoraView.ts +235 -0
  181. package/ts/Renderer/CapabilityManager.ts +126 -0
  182. package/ts/Renderer/IRenderer.ts +158 -0
  183. package/ts/Renderer/IRendererCache.ts +96 -0
  184. package/ts/Renderer/RendererCache.ts +124 -0
  185. package/ts/Renderer/RendererManager.ts +400 -0
  186. package/ts/Renderer/WebCodecsRenderer/index.ts +145 -0
  187. package/ts/Renderer/WebCodecsRendererCache.ts +137 -0
  188. package/ts/Renderer/WebGLRenderer/index.ts +489 -0
  189. package/ts/Renderer/WebGLRenderer/webgl-utils.js +1510 -0
  190. package/ts/Renderer/YUVCanvasRenderer/index.ts +67 -0
  191. package/ts/Renderer/index.ts +1 -0
  192. package/ts/Types.ts +249 -0
  193. package/ts/Utils.ts +197 -0
  194. package/types/AgoraSdk.d.ts +40 -0
  195. package/types/AgoraSdk.d.ts.map +1 -0
  196. package/types/Decoder/gpu-utils.d.ts +21 -0
  197. package/types/Decoder/gpu-utils.d.ts.map +1 -0
  198. package/types/Decoder/index.d.ts +26 -0
  199. package/types/Decoder/index.d.ts.map +1 -0
  200. package/types/Private/AgoraBase.d.ts +5310 -0
  201. package/types/Private/AgoraBase.d.ts.map +1 -0
  202. package/types/Private/AgoraMediaBase.d.ts +1668 -0
  203. package/types/Private/AgoraMediaBase.d.ts.map +1 -0
  204. package/types/Private/AgoraMediaPlayerTypes.d.ts +453 -0
  205. package/types/Private/AgoraMediaPlayerTypes.d.ts.map +1 -0
  206. package/types/Private/IAgoraH265Transcoder.d.ts +28 -0
  207. package/types/Private/IAgoraH265Transcoder.d.ts.map +1 -0
  208. package/types/Private/IAgoraLog.d.ts +89 -0
  209. package/types/Private/IAgoraLog.d.ts.map +1 -0
  210. package/types/Private/IAgoraMediaEngine.d.ts +250 -0
  211. package/types/Private/IAgoraMediaEngine.d.ts.map +1 -0
  212. package/types/Private/IAgoraMediaPlayer.d.ts +648 -0
  213. package/types/Private/IAgoraMediaPlayer.d.ts.map +1 -0
  214. package/types/Private/IAgoraMediaPlayerSource.d.ts +109 -0
  215. package/types/Private/IAgoraMediaPlayerSource.d.ts.map +1 -0
  216. package/types/Private/IAgoraMediaRecorder.d.ts +20 -0
  217. package/types/Private/IAgoraMediaRecorder.d.ts.map +1 -0
  218. package/types/Private/IAgoraMediaStreamingSource.d.ts +42 -0
  219. package/types/Private/IAgoraMediaStreamingSource.d.ts.map +1 -0
  220. package/types/Private/IAgoraMusicContentCenter.d.ts +381 -0
  221. package/types/Private/IAgoraMusicContentCenter.d.ts.map +1 -0
  222. package/types/Private/IAgoraRhythmPlayer.d.ts +65 -0
  223. package/types/Private/IAgoraRhythmPlayer.d.ts.map +1 -0
  224. package/types/Private/IAgoraRtcEngine.d.ts +6103 -0
  225. package/types/Private/IAgoraRtcEngine.d.ts.map +1 -0
  226. package/types/Private/IAgoraRtcEngineEx.d.ts +741 -0
  227. package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -0
  228. package/types/Private/IAgoraSpatialAudio.d.ts +196 -0
  229. package/types/Private/IAgoraSpatialAudio.d.ts.map +1 -0
  230. package/types/Private/IAudioDeviceManager.d.ts +312 -0
  231. package/types/Private/IAudioDeviceManager.d.ts.map +1 -0
  232. package/types/Private/extension/AgoraBaseExtension.d.ts +14 -0
  233. package/types/Private/extension/AgoraBaseExtension.d.ts.map +1 -0
  234. package/types/Private/extension/AgoraMediaBaseExtension.d.ts +2 -0
  235. package/types/Private/extension/AgoraMediaBaseExtension.d.ts.map +1 -0
  236. package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts +2 -0
  237. package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +1 -0
  238. package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts +24 -0
  239. package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +1 -0
  240. package/types/Private/extension/IAgoraLogExtension.d.ts +2 -0
  241. package/types/Private/extension/IAgoraLogExtension.d.ts.map +1 -0
  242. package/types/Private/extension/IAgoraMediaEngineExtension.d.ts +40 -0
  243. package/types/Private/extension/IAgoraMediaEngineExtension.d.ts.map +1 -0
  244. package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts +46 -0
  245. package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +1 -0
  246. package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts +2 -0
  247. package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +1 -0
  248. package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts +44 -0
  249. package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +1 -0
  250. package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts +20 -0
  251. package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +1 -0
  252. package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts +2 -0
  253. package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +1 -0
  254. package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts +2 -0
  255. package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +1 -0
  256. package/types/Private/extension/IAgoraRtcEngineExtension.d.ts +42 -0
  257. package/types/Private/extension/IAgoraRtcEngineExtension.d.ts.map +1 -0
  258. package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts +2 -0
  259. package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +1 -0
  260. package/types/Private/extension/IAudioDeviceManagerExtension.d.ts +2 -0
  261. package/types/Private/extension/IAudioDeviceManagerExtension.d.ts.map +1 -0
  262. package/types/Private/impl/AgoraBaseImpl.d.ts +3 -0
  263. package/types/Private/impl/AgoraBaseImpl.d.ts.map +1 -0
  264. package/types/Private/impl/AgoraMediaBaseImpl.d.ts +14 -0
  265. package/types/Private/impl/AgoraMediaBaseImpl.d.ts.map +1 -0
  266. package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts +15 -0
  267. package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +1 -0
  268. package/types/Private/impl/IAgoraMediaEngineImpl.d.ts +46 -0
  269. package/types/Private/impl/IAgoraMediaEngineImpl.d.ts.map +1 -0
  270. package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts +143 -0
  271. package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +1 -0
  272. package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts +3 -0
  273. package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +1 -0
  274. package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts +11 -0
  275. package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +1 -0
  276. package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts +67 -0
  277. package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +1 -0
  278. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts +116 -0
  279. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -0
  280. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts +628 -0
  281. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -0
  282. package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts +47 -0
  283. package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +1 -0
  284. package/types/Private/impl/IAudioDeviceManagerImpl.d.ts +65 -0
  285. package/types/Private/impl/IAudioDeviceManagerImpl.d.ts.map +1 -0
  286. package/types/Private/internal/AgoraH265TranscoderInternal.d.ts +14 -0
  287. package/types/Private/internal/AgoraH265TranscoderInternal.d.ts.map +1 -0
  288. package/types/Private/internal/AgoraMediaBaseInternal.d.ts +8 -0
  289. package/types/Private/internal/AgoraMediaBaseInternal.d.ts.map +1 -0
  290. package/types/Private/internal/AudioDeviceManagerInternal.d.ts +9 -0
  291. package/types/Private/internal/AudioDeviceManagerInternal.d.ts.map +1 -0
  292. package/types/Private/internal/IrisApiEngine.d.ts +69 -0
  293. package/types/Private/internal/IrisApiEngine.d.ts.map +1 -0
  294. package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts +4 -0
  295. package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +1 -0
  296. package/types/Private/internal/MediaEngineInternal.d.ts +23 -0
  297. package/types/Private/internal/MediaEngineInternal.d.ts.map +1 -0
  298. package/types/Private/internal/MediaPlayerInternal.d.ts +30 -0
  299. package/types/Private/internal/MediaPlayerInternal.d.ts.map +1 -0
  300. package/types/Private/internal/MediaRecorderInternal.d.ts +16 -0
  301. package/types/Private/internal/MediaRecorderInternal.d.ts.map +1 -0
  302. package/types/Private/internal/MusicContentCenterInternal.d.ts +31 -0
  303. package/types/Private/internal/MusicContentCenterInternal.d.ts.map +1 -0
  304. package/types/Private/internal/RtcEngineExInternal.d.ts +73 -0
  305. package/types/Private/internal/RtcEngineExInternal.d.ts.map +1 -0
  306. package/types/Private/ipc/main.d.ts +2 -0
  307. package/types/Private/ipc/main.d.ts.map +1 -0
  308. package/types/Private/ipc/renderer.d.ts +3 -0
  309. package/types/Private/ipc/renderer.d.ts.map +1 -0
  310. package/types/Private/ti/AgoraBase-ti.d.ts +8 -0
  311. package/types/Private/ti/AgoraBase-ti.d.ts.map +1 -0
  312. package/types/Private/ti/AgoraMediaBase-ti.d.ts +15 -0
  313. package/types/Private/ti/AgoraMediaBase-ti.d.ts.map +1 -0
  314. package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts +7 -0
  315. package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +1 -0
  316. package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts +8 -0
  317. package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +1 -0
  318. package/types/Private/ti/IAgoraLog-ti.d.ts +7 -0
  319. package/types/Private/ti/IAgoraLog-ti.d.ts.map +1 -0
  320. package/types/Private/ti/IAgoraMediaEngine-ti.d.ts +7 -0
  321. package/types/Private/ti/IAgoraMediaEngine-ti.d.ts.map +1 -0
  322. package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts +8 -0
  323. package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +1 -0
  324. package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts +8 -0
  325. package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +1 -0
  326. package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts +7 -0
  327. package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +1 -0
  328. package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts +7 -0
  329. package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +1 -0
  330. package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts +8 -0
  331. package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +1 -0
  332. package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts +7 -0
  333. package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +1 -0
  334. package/types/Private/ti/IAgoraRtcEngine-ti.d.ts +10 -0
  335. package/types/Private/ti/IAgoraRtcEngine-ti.d.ts.map +1 -0
  336. package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts +7 -0
  337. package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +1 -0
  338. package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts +7 -0
  339. package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +1 -0
  340. package/types/Private/ti/IAudioDeviceManager-ti.d.ts +7 -0
  341. package/types/Private/ti/IAudioDeviceManager-ti.d.ts.map +1 -0
  342. package/types/Renderer/AgoraView.d.ts +76 -0
  343. package/types/Renderer/AgoraView.d.ts.map +1 -0
  344. package/types/Renderer/CapabilityManager.d.ts +20 -0
  345. package/types/Renderer/CapabilityManager.d.ts.map +1 -0
  346. package/types/Renderer/IRenderer.d.ts +20 -0
  347. package/types/Renderer/IRenderer.d.ts.map +1 -0
  348. package/types/Renderer/IRendererCache.d.ts +26 -0
  349. package/types/Renderer/IRendererCache.d.ts.map +1 -0
  350. package/types/Renderer/RendererCache.d.ts +24 -0
  351. package/types/Renderer/RendererCache.d.ts.map +1 -0
  352. package/types/Renderer/RendererManager.d.ts +66 -0
  353. package/types/Renderer/RendererManager.d.ts.map +1 -0
  354. package/types/Renderer/WebCodecsRenderer/index.d.ts +14 -0
  355. package/types/Renderer/WebCodecsRenderer/index.d.ts.map +1 -0
  356. package/types/Renderer/WebCodecsRendererCache.d.ts +15 -0
  357. package/types/Renderer/WebCodecsRendererCache.d.ts.map +1 -0
  358. package/types/Renderer/WebGLRenderer/index.d.ts +27 -0
  359. package/types/Renderer/WebGLRenderer/index.d.ts.map +1 -0
  360. package/types/Renderer/WebGLRenderer/webgl-utils.d.ts +1 -0
  361. package/types/Renderer/WebGLRenderer/webgl-utils.d.ts.map +1 -0
  362. package/types/Renderer/YUVCanvasRenderer/index.d.ts +9 -0
  363. package/types/Renderer/YUVCanvasRenderer/index.d.ts.map +1 -0
  364. package/types/Renderer/index.d.ts +2 -0
  365. package/types/Renderer/index.d.ts.map +1 -0
  366. package/types/Types.d.ts +177 -0
  367. package/types/Types.d.ts.map +1 -0
  368. package/types/Utils.d.ts +50 -0
  369. package/types/Utils.d.ts.map +1 -0
@@ -0,0 +1,647 @@
1
+ import { createCheckers } from 'ts-interface-checker';
2
+
3
+ import { AgoraElectronBridge } from '../../Private/internal/IrisApiEngine';
4
+ import { AgoraEnv, logError, parseIntPtr2Number } from '../../Utils';
5
+ import { VideoEncoderConfiguration } from '../AgoraBase';
6
+ let RendererManager: any;
7
+ let CapabilityManager: any;
8
+ //@ts-ignore
9
+ if (process.type === 'renderer') {
10
+ RendererManager = require('../../Renderer/RendererManager').RendererManager;
11
+ CapabilityManager =
12
+ require('../../Renderer/CapabilityManager').CapabilityManager;
13
+ } else {
14
+ RendererManager = undefined;
15
+ CapabilityManager = undefined;
16
+ }
17
+ import {
18
+ AudioEncodedFrameObserverConfig,
19
+ ClientRoleOptions,
20
+ ClientRoleType,
21
+ ErrorCodeType,
22
+ IAudioEncodedFrameObserver,
23
+ RecorderStreamInfo,
24
+ SimulcastStreamConfig,
25
+ SimulcastStreamMode,
26
+ VideoCanvas,
27
+ VideoMirrorModeType,
28
+ } from '../AgoraBase';
29
+ import {
30
+ IAudioSpectrumObserver,
31
+ RenderModeType,
32
+ VideoSourceType,
33
+ } from '../AgoraMediaBase';
34
+ import { IH265Transcoder } from '../IAgoraH265Transcoder';
35
+ import { IMediaEngine } from '../IAgoraMediaEngine';
36
+ import { IMediaPlayer } from '../IAgoraMediaPlayer';
37
+ import { IMediaRecorder } from '../IAgoraMediaRecorder';
38
+ import { IMusicContentCenter } from '../IAgoraMusicContentCenter';
39
+ import {
40
+ ChannelMediaOptions,
41
+ DirectCdnStreamingMediaOptions,
42
+ IDirectCdnStreamingEventHandler,
43
+ IMetadataObserver,
44
+ IRtcEngineEventHandler,
45
+ IVideoDeviceManager,
46
+ LeaveChannelOptions,
47
+ MetadataType,
48
+ RtcEngineContext,
49
+ SDKBuildInfo,
50
+ ScreenCaptureSourceInfo,
51
+ Size,
52
+ } from '../IAgoraRtcEngine';
53
+ import { RtcConnection } from '../IAgoraRtcEngineEx';
54
+ import { ILocalSpatialAudioEngine } from '../IAgoraSpatialAudio';
55
+ import { IAudioDeviceManager } from '../IAudioDeviceManager';
56
+ import { IRtcEngineEvent } from '../extension/IAgoraRtcEngineExtension';
57
+ import { IRtcEngineExImpl } from '../impl/IAgoraRtcEngineExImpl';
58
+ import { IVideoDeviceManagerImpl } from '../impl/IAgoraRtcEngineImpl';
59
+ import AgoraBaseTI from '../ti/AgoraBase-ti';
60
+ import AgoraMediaBaseTI from '../ti/AgoraMediaBase-ti';
61
+ import IAgoraRtcEngineTI from '../ti/IAgoraRtcEngine-ti';
62
+
63
+ import { H265TranscoderInternal } from './AgoraH265TranscoderInternal';
64
+ import { AudioDeviceManagerInternal } from './AudioDeviceManagerInternal';
65
+ import {
66
+ DeviceEventEmitter,
67
+ EVENT_TYPE,
68
+ EventProcessor,
69
+ callIrisApi,
70
+ } from './IrisApiEngine';
71
+ import { LocalSpatialAudioEngineInternal } from './LocalSpatialAudioEngineInternal';
72
+ import { MediaEngineInternal } from './MediaEngineInternal';
73
+ import { MediaPlayerInternal } from './MediaPlayerInternal';
74
+ import { MediaRecorderInternal } from './MediaRecorderInternal';
75
+ import { MusicContentCenterInternal } from './MusicContentCenterInternal';
76
+
77
+ const checkers = createCheckers(
78
+ AgoraBaseTI,
79
+ AgoraMediaBaseTI,
80
+ IAgoraRtcEngineTI
81
+ );
82
+
83
+ export class RtcEngineExInternal extends IRtcEngineExImpl {
84
+ static _event_handlers: IRtcEngineEventHandler[] = [];
85
+ static _direct_cdn_streaming_event_handler: IDirectCdnStreamingEventHandler[] =
86
+ [];
87
+ static _metadata_observer: IMetadataObserver[] = [];
88
+ static _audio_encoded_frame_observers: IAudioEncodedFrameObserver[] = [];
89
+ static _audio_spectrum_observers: IAudioSpectrumObserver[] = [];
90
+ private _audio_device_manager: IAudioDeviceManager =
91
+ new AudioDeviceManagerInternal();
92
+ private _video_device_manager: IVideoDeviceManager =
93
+ new IVideoDeviceManagerImpl();
94
+ private _media_engine: IMediaEngine = new MediaEngineInternal();
95
+ private _music_content_center: IMusicContentCenter =
96
+ new MusicContentCenterInternal();
97
+ private _local_spatial_audio_engine: ILocalSpatialAudioEngine =
98
+ new LocalSpatialAudioEngineInternal();
99
+ private _h265_transcoder: IH265Transcoder = new H265TranscoderInternal();
100
+
101
+ override initialize(context: RtcEngineContext): number {
102
+ const ret = super.initialize(context);
103
+ callIrisApi.call(this, 'RtcEngine_setAppType', {
104
+ appType: 3,
105
+ });
106
+ if (AgoraEnv.webEnvReady) {
107
+ // @ts-ignore
108
+ window.AgoraEnv = AgoraEnv;
109
+ if (AgoraEnv.AgoraRendererManager === undefined && RendererManager) {
110
+ AgoraEnv.AgoraRendererManager = new RendererManager();
111
+ }
112
+ if (AgoraEnv.CapabilityManager === undefined && CapabilityManager) {
113
+ AgoraEnv.CapabilityManager = new CapabilityManager();
114
+ }
115
+ }
116
+ return ret;
117
+ }
118
+
119
+ override release(sync: boolean = false) {
120
+ AgoraElectronBridge.ReleaseRenderer();
121
+ AgoraEnv.AgoraRendererManager?.release();
122
+ AgoraEnv.AgoraRendererManager = undefined;
123
+ this._media_engine.release();
124
+ this._local_spatial_audio_engine.release();
125
+ RtcEngineExInternal._event_handlers = [];
126
+ RtcEngineExInternal._event_handlers.map((it) => {
127
+ super.unregisterEventHandler(it);
128
+ });
129
+ RtcEngineExInternal._direct_cdn_streaming_event_handler = [];
130
+ RtcEngineExInternal._metadata_observer = [];
131
+ RtcEngineExInternal._audio_encoded_frame_observers = [];
132
+ RtcEngineExInternal._audio_spectrum_observers = [];
133
+ MediaPlayerInternal._source_observers.clear();
134
+ MediaPlayerInternal._audio_frame_observers.clear();
135
+ MediaPlayerInternal._video_frame_observers.clear();
136
+ MediaPlayerInternal._audio_spectrum_observers.clear();
137
+ MediaRecorderInternal._observers.clear();
138
+ this._h265_transcoder.release();
139
+ this.removeAllListeners();
140
+ AgoraEnv.CapabilityManager?.release();
141
+ AgoraEnv.CapabilityManager = undefined;
142
+ super.release(sync);
143
+ }
144
+
145
+ _addListenerPreCheck<EventType extends keyof IRtcEngineEvent>(
146
+ eventType: EventType
147
+ ): boolean {
148
+ if (
149
+ checkers.IRtcEngineEventHandler?.strictTest({ [eventType]: undefined })
150
+ ) {
151
+ if (RtcEngineExInternal._event_handlers.length === 0) {
152
+ this.registerEventHandler({});
153
+ }
154
+ }
155
+ if (
156
+ checkers.IDirectCdnStreamingEventHandler?.strictTest({
157
+ [eventType]: undefined,
158
+ })
159
+ ) {
160
+ if (
161
+ RtcEngineExInternal._direct_cdn_streaming_event_handler.length === 0
162
+ ) {
163
+ logError(
164
+ 'Please call `startDirectCdnStreaming` before you want to receive event by `addListener`'
165
+ );
166
+ return false;
167
+ }
168
+ }
169
+ if (
170
+ checkers.IMetadataObserver?.strictTest({
171
+ [eventType]: undefined,
172
+ })
173
+ ) {
174
+ if (RtcEngineExInternal._metadata_observer.length === 0) {
175
+ logError(
176
+ 'Please call `registerMediaMetadataObserver` before you want to receive event by `addListener`'
177
+ );
178
+ return false;
179
+ }
180
+ }
181
+ if (
182
+ checkers.IAudioEncodedFrameObserver?.strictTest({
183
+ [eventType]: undefined,
184
+ })
185
+ ) {
186
+ if (RtcEngineExInternal._audio_encoded_frame_observers.length === 0) {
187
+ logError(
188
+ 'Please call `registerAudioEncodedFrameObserver` before you want to receive event by `addListener`'
189
+ );
190
+ return false;
191
+ }
192
+ }
193
+ if (
194
+ checkers.IAudioSpectrumObserver?.strictTest({
195
+ [eventType]: undefined,
196
+ })
197
+ ) {
198
+ if (RtcEngineExInternal._audio_spectrum_observers.length === 0) {
199
+ this.registerAudioSpectrumObserver({});
200
+ }
201
+ }
202
+ return true;
203
+ }
204
+
205
+ addListener<EventType extends keyof IRtcEngineEvent>(
206
+ eventType: EventType,
207
+ listener: IRtcEngineEvent[EventType]
208
+ ) {
209
+ this._addListenerPreCheck(eventType);
210
+ const callback = (eventProcessor: EventProcessor<any>, data: any) => {
211
+ if (eventProcessor.type(data) !== EVENT_TYPE.IRtcEngine) {
212
+ return;
213
+ }
214
+ eventProcessor.func.map((it) => {
215
+ it({ [eventType]: listener }, eventType, data);
216
+ });
217
+ };
218
+ // @ts-ignore
219
+ listener!.agoraCallback = callback;
220
+ DeviceEventEmitter.addListener(eventType, callback);
221
+ }
222
+
223
+ removeListener<EventType extends keyof IRtcEngineEvent>(
224
+ eventType: EventType,
225
+ listener?: IRtcEngineEvent[EventType]
226
+ ) {
227
+ DeviceEventEmitter.removeListener(
228
+ eventType,
229
+ // @ts-ignore
230
+ listener?.agoraCallback ?? listener
231
+ );
232
+ }
233
+
234
+ removeAllListeners<EventType extends keyof IRtcEngineEvent>(
235
+ eventType?: EventType
236
+ ) {
237
+ DeviceEventEmitter.removeAllListeners(eventType);
238
+ }
239
+
240
+ override getVersion(): SDKBuildInfo {
241
+ const apiType = 'RtcEngine_getVersion_915cb25';
242
+ const jsonParams = {};
243
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
244
+ return {
245
+ build: jsonResults.build,
246
+ version: jsonResults.result,
247
+ };
248
+ }
249
+
250
+ override registerEventHandler(eventHandler: IRtcEngineEventHandler): boolean {
251
+ // only call iris when no event handler registered
252
+ let callIris = RtcEngineExInternal._event_handlers.length === 0;
253
+ if (
254
+ !RtcEngineExInternal._event_handlers.find(
255
+ (value) => value === eventHandler
256
+ )
257
+ ) {
258
+ RtcEngineExInternal._event_handlers.push(eventHandler);
259
+ }
260
+ return callIris ? super.registerEventHandler(eventHandler) : true;
261
+ }
262
+
263
+ override unregisterEventHandler(
264
+ eventHandler: IRtcEngineEventHandler
265
+ ): boolean {
266
+ RtcEngineExInternal._event_handlers =
267
+ RtcEngineExInternal._event_handlers.filter(
268
+ (value) => value !== eventHandler
269
+ );
270
+ // only call iris when no event handler registered
271
+ let callIris = RtcEngineExInternal._event_handlers.length === 0;
272
+ return callIris ? super.unregisterEventHandler(eventHandler) : true;
273
+ }
274
+
275
+ override createMediaPlayer(): IMediaPlayer {
276
+ // @ts-ignore
277
+ const mediaPlayerId = super.createMediaPlayer() as number;
278
+ return new MediaPlayerInternal(mediaPlayerId);
279
+ }
280
+
281
+ override destroyMediaPlayer(mediaPlayer: IMediaPlayer): number {
282
+ const ret = super.destroyMediaPlayer(mediaPlayer);
283
+ mediaPlayer.release?.call(mediaPlayer);
284
+ return ret;
285
+ }
286
+
287
+ override createMediaRecorder(info: RecorderStreamInfo): IMediaRecorder {
288
+ // @ts-ignore
289
+ const nativeHandle = super.createMediaRecorder(info) as string;
290
+ return new MediaRecorderInternal(nativeHandle);
291
+ }
292
+
293
+ override destroyMediaRecorder(mediaRecorder: IMediaRecorder): number {
294
+ const ret = super.destroyMediaRecorder(mediaRecorder);
295
+ mediaRecorder.release?.call(mediaRecorder);
296
+ return ret;
297
+ }
298
+
299
+ override startDirectCdnStreaming(
300
+ eventHandler: IDirectCdnStreamingEventHandler,
301
+ publishUrl: string,
302
+ options: DirectCdnStreamingMediaOptions
303
+ ): number {
304
+ if (
305
+ !RtcEngineExInternal._direct_cdn_streaming_event_handler.find(
306
+ (value) => value === eventHandler
307
+ )
308
+ ) {
309
+ RtcEngineExInternal._direct_cdn_streaming_event_handler.push(
310
+ eventHandler
311
+ );
312
+ }
313
+ return super.startDirectCdnStreaming(eventHandler, publishUrl, options);
314
+ }
315
+
316
+ override registerMediaMetadataObserver(
317
+ observer: IMetadataObserver,
318
+ type: MetadataType
319
+ ): number {
320
+ if (
321
+ !RtcEngineExInternal._metadata_observer.find(
322
+ (value) => value === observer
323
+ )
324
+ ) {
325
+ RtcEngineExInternal._metadata_observer.push(observer);
326
+ }
327
+ return super.registerMediaMetadataObserver(observer, type);
328
+ }
329
+
330
+ override unregisterMediaMetadataObserver(
331
+ observer: IMetadataObserver,
332
+ type: MetadataType
333
+ ): number {
334
+ RtcEngineExInternal._metadata_observer =
335
+ RtcEngineExInternal._metadata_observer.filter(
336
+ (value) => value !== observer
337
+ );
338
+ return super.unregisterMediaMetadataObserver(observer, type);
339
+ }
340
+
341
+ override setVideoEncoderConfiguration(
342
+ config: VideoEncoderConfiguration
343
+ ): number {
344
+ AgoraEnv.encodeAlpha = config?.advanceOptions?.encodeAlpha ?? false;
345
+ return super.setVideoEncoderConfiguration(config);
346
+ }
347
+
348
+ protected override getApiTypeFromJoinChannel(
349
+ token: string,
350
+ channelId: string,
351
+ uid: number,
352
+ options: ChannelMediaOptions
353
+ ): string {
354
+ if (AgoraEnv.AgoraRendererManager) {
355
+ AgoraEnv.AgoraRendererManager.defaultChannelId = channelId;
356
+ }
357
+ return options === undefined
358
+ ? 'RtcEngine_joinChannel_f097389'
359
+ : 'RtcEngine_joinChannel_cdbb747';
360
+ }
361
+
362
+ protected override getApiTypeFromLeaveChannel(
363
+ options?: LeaveChannelOptions
364
+ ): string {
365
+ return options === undefined
366
+ ? 'RtcEngine_leaveChannel'
367
+ : 'RtcEngine_leaveChannel_2c0e3aa';
368
+ }
369
+
370
+ protected override getApiTypeFromLeaveChannelEx(
371
+ connection: RtcConnection,
372
+ options?: LeaveChannelOptions
373
+ ): string {
374
+ return options === undefined
375
+ ? 'RtcEngineEx_leaveChannelEx_c81e1a4'
376
+ : 'RtcEngineEx_leaveChannelEx_b03ee9a';
377
+ }
378
+
379
+ protected override getApiTypeFromSetClientRole(
380
+ role: ClientRoleType,
381
+ options?: ClientRoleOptions
382
+ ): string {
383
+ return options === undefined
384
+ ? 'RtcEngine_setClientRole_3426fa6'
385
+ : 'RtcEngine_setClientRole_b46cc48';
386
+ }
387
+
388
+ protected override getApiTypeFromEnableDualStreamMode(
389
+ enabled: boolean,
390
+ streamConfig?: SimulcastStreamConfig
391
+ ): string {
392
+ return streamConfig === undefined
393
+ ? 'RtcEngine_enableDualStreamMode_5039d15'
394
+ : 'RtcEngine_enableDualStreamMode_9822d8a';
395
+ }
396
+
397
+ protected override getApiTypeFromSetDualStreamMode(
398
+ mode: SimulcastStreamMode,
399
+ streamConfig?: SimulcastStreamConfig
400
+ ): string {
401
+ return streamConfig === undefined
402
+ ? 'RtcEngine_setDualStreamMode_3a7f662'
403
+ : 'RtcEngine_setDualStreamMode_b3a4f6c';
404
+ }
405
+
406
+ protected override getApiTypeFromJoinChannelWithUserAccount(
407
+ token: string,
408
+ channelId: string,
409
+ userAccount: string,
410
+ options?: ChannelMediaOptions
411
+ ): string {
412
+ if (AgoraEnv.AgoraRendererManager) {
413
+ AgoraEnv.AgoraRendererManager.defaultChannelId = channelId;
414
+ }
415
+ return options === undefined
416
+ ? 'RtcEngine_joinChannelWithUserAccount_0e4f59e'
417
+ : 'RtcEngine_joinChannelWithUserAccount_4685af9';
418
+ }
419
+
420
+ override getAudioDeviceManager(): IAudioDeviceManager {
421
+ return this._audio_device_manager;
422
+ }
423
+
424
+ override getVideoDeviceManager(): IVideoDeviceManager {
425
+ return this._video_device_manager;
426
+ }
427
+
428
+ override getMediaEngine(): IMediaEngine {
429
+ return this._media_engine;
430
+ }
431
+
432
+ override getMusicContentCenter(): IMusicContentCenter {
433
+ return this._music_content_center;
434
+ }
435
+
436
+ override getLocalSpatialAudioEngine(): ILocalSpatialAudioEngine {
437
+ return this._local_spatial_audio_engine;
438
+ }
439
+
440
+ override getH265Transcoder(): IH265Transcoder {
441
+ return this._h265_transcoder;
442
+ }
443
+
444
+ override getNativeHandle(): number {
445
+ let result = super.getNativeHandle();
446
+ return parseIntPtr2Number(result);
447
+ }
448
+
449
+ override registerAudioEncodedFrameObserver(
450
+ config: AudioEncodedFrameObserverConfig,
451
+ observer: IAudioEncodedFrameObserver
452
+ ): number {
453
+ if (
454
+ !RtcEngineExInternal._audio_encoded_frame_observers.find(
455
+ (value) => value === observer
456
+ )
457
+ ) {
458
+ RtcEngineExInternal._audio_encoded_frame_observers.push(observer);
459
+ }
460
+ return super.registerAudioEncodedFrameObserver(config, observer);
461
+ }
462
+
463
+ override unregisterAudioEncodedFrameObserver(
464
+ observer: IAudioEncodedFrameObserver
465
+ ): number {
466
+ RtcEngineExInternal._audio_encoded_frame_observers =
467
+ RtcEngineExInternal._audio_encoded_frame_observers.filter(
468
+ (value) => value !== observer
469
+ );
470
+ return super.unregisterAudioEncodedFrameObserver(observer);
471
+ }
472
+
473
+ override registerAudioSpectrumObserver(
474
+ observer: IAudioSpectrumObserver
475
+ ): number {
476
+ if (
477
+ !RtcEngineExInternal._audio_spectrum_observers.find(
478
+ (value) => value === observer
479
+ )
480
+ ) {
481
+ RtcEngineExInternal._audio_spectrum_observers.push(observer);
482
+ }
483
+ return super.registerAudioSpectrumObserver(observer);
484
+ }
485
+
486
+ override unregisterAudioSpectrumObserver(
487
+ observer: IAudioSpectrumObserver
488
+ ): number {
489
+ RtcEngineExInternal._audio_spectrum_observers =
490
+ RtcEngineExInternal._audio_spectrum_observers.filter(
491
+ (value) => value !== observer
492
+ );
493
+ return super.unregisterAudioSpectrumObserver(observer);
494
+ }
495
+
496
+ override getScreenCaptureSources(
497
+ thumbSize: Size,
498
+ iconSize: Size,
499
+ includeScreen: boolean
500
+ ): ScreenCaptureSourceInfo[] {
501
+ const apiType = this.getApiTypeFromGetScreenCaptureSources(
502
+ thumbSize,
503
+ iconSize,
504
+ includeScreen
505
+ );
506
+ const jsonParams = {
507
+ thumbSize: thumbSize,
508
+ iconSize: iconSize,
509
+ includeScreen: includeScreen,
510
+ toJSON: () => {
511
+ return {
512
+ thumbSize: thumbSize,
513
+ iconSize: iconSize,
514
+ includeScreen: includeScreen,
515
+ };
516
+ },
517
+ };
518
+ const { result, sources } = callIrisApi.call(this, apiType, jsonParams);
519
+ const screenCaptureSources = result.map(
520
+ (value: ScreenCaptureSourceInfo) => {
521
+ if (!value.thumbImage?.buffer || !value.thumbImage?.length) {
522
+ value.thumbImage!.buffer = undefined;
523
+ } else {
524
+ value.thumbImage!.buffer = AgoraElectronBridge.GetBuffer(
525
+ value.thumbImage!.buffer as unknown as number,
526
+ value.thumbImage.length!
527
+ );
528
+ }
529
+ if (!value.iconImage?.buffer || !value.iconImage?.length) {
530
+ value.iconImage!.buffer = undefined;
531
+ } else {
532
+ value.iconImage.buffer = AgoraElectronBridge.GetBuffer(
533
+ value.iconImage!.buffer as unknown as number,
534
+ value.iconImage.length!
535
+ );
536
+ }
537
+ value.sourceDisplayId = parseIntPtr2Number(value.sourceDisplayId!);
538
+ return value;
539
+ }
540
+ );
541
+ callIrisApi.call(this, 'RtcEngine_releaseScreenCaptureSources', {
542
+ sources,
543
+ });
544
+ return screenCaptureSources;
545
+ }
546
+
547
+ override setupLocalVideo(canvas: VideoCanvas): number {
548
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
549
+ const renderer = AgoraEnv.AgoraRendererManager.addOrRemoveRenderer(canvas);
550
+ if (!renderer) return -ErrorCodeType.ErrFailed;
551
+ return ErrorCodeType.ErrOk;
552
+ }
553
+
554
+ override setupRemoteVideo(canvas: VideoCanvas): number {
555
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
556
+ const renderer = AgoraEnv.AgoraRendererManager.addOrRemoveRenderer(canvas);
557
+ if (!renderer) return -ErrorCodeType.ErrFailed;
558
+ return ErrorCodeType.ErrOk;
559
+ }
560
+
561
+ override setupRemoteVideoEx(
562
+ canvas: VideoCanvas,
563
+ connection: RtcConnection
564
+ ): number {
565
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
566
+ const renderer = AgoraEnv.AgoraRendererManager.addOrRemoveRenderer({
567
+ ...canvas,
568
+ ...connection,
569
+ });
570
+ if (!renderer) return -ErrorCodeType.ErrFailed;
571
+ return ErrorCodeType.ErrOk;
572
+ }
573
+
574
+ override setLocalRenderMode(
575
+ renderMode: RenderModeType,
576
+ mirrorMode: VideoMirrorModeType = VideoMirrorModeType.VideoMirrorModeAuto
577
+ ): number {
578
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
579
+ const result = AgoraEnv.AgoraRendererManager.setRendererContext({
580
+ sourceType: VideoSourceType.VideoSourceCamera,
581
+ renderMode,
582
+ mirrorMode,
583
+ });
584
+ if (!result) return -ErrorCodeType.ErrFailed;
585
+ return ErrorCodeType.ErrOk;
586
+ }
587
+
588
+ override setRemoteRenderMode(
589
+ uid: number,
590
+ renderMode: RenderModeType,
591
+ mirrorMode: VideoMirrorModeType
592
+ ): number {
593
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
594
+ const result = AgoraEnv.AgoraRendererManager.setRendererContext({
595
+ sourceType: VideoSourceType.VideoSourceRemote,
596
+ uid,
597
+ renderMode,
598
+ mirrorMode,
599
+ });
600
+ if (!result) return -ErrorCodeType.ErrFailed;
601
+ return ErrorCodeType.ErrOk;
602
+ }
603
+
604
+ override setRemoteRenderModeEx(
605
+ uid: number,
606
+ renderMode: RenderModeType,
607
+ mirrorMode: VideoMirrorModeType,
608
+ connection: RtcConnection
609
+ ): number {
610
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
611
+ const result = AgoraEnv.AgoraRendererManager.setRendererContext({
612
+ sourceType: VideoSourceType.VideoSourceRemote,
613
+ ...connection,
614
+ uid,
615
+ renderMode,
616
+ mirrorMode,
617
+ });
618
+ if (!result) return -ErrorCodeType.ErrFailed;
619
+ return ErrorCodeType.ErrOk;
620
+ }
621
+
622
+ override setLocalVideoMirrorMode(mirrorMode: VideoMirrorModeType): number {
623
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
624
+ const result = AgoraEnv.AgoraRendererManager.setRendererContext({
625
+ sourceType: VideoSourceType.VideoSourceCamera,
626
+ mirrorMode,
627
+ });
628
+ if (!result) return -ErrorCodeType.ErrFailed;
629
+ return ErrorCodeType.ErrOk;
630
+ }
631
+
632
+ override destroyRendererByView(view: Element) {
633
+ AgoraEnv.AgoraRendererManager?.removeRendererFromCache({ view });
634
+ }
635
+
636
+ override destroyRendererByConfig(
637
+ sourceType: VideoSourceType,
638
+ channelId?: string,
639
+ uid?: number
640
+ ) {
641
+ AgoraEnv.AgoraRendererManager?.removeRendererFromCache({
642
+ sourceType,
643
+ channelId,
644
+ uid,
645
+ });
646
+ }
647
+ }
@@ -0,0 +1,22 @@
1
+ //@ts-ignore
2
+ import { app, ipcMain } from 'electron';
3
+
4
+ import { getGpuInfoInternal } from '../../Decoder/gpu-utils';
5
+
6
+ import { IPCMessageType } from '../../Types';
7
+ //@ts-ignore
8
+ if (process.type !== 'renderer') {
9
+ ipcMain.handle(IPCMessageType.AGORA_IPC_GET_GPU_INFO, () => {
10
+ return new Promise((resolve) => {
11
+ getGpuInfoInternal((result: any) => {
12
+ resolve(result);
13
+ });
14
+ });
15
+ });
16
+ console.log('[agora-electron] main process AgoraIPCMain handler registered');
17
+
18
+ app.on('quit', () => {
19
+ ipcMain.removeHandler(IPCMessageType.AGORA_IPC_GET_GPU_INFO);
20
+ console.log('[agora-electron] main process AgoraIPCMain handler removed');
21
+ });
22
+ }
@@ -0,0 +1,21 @@
1
+ //@ts-ignore
2
+ import { ipcRenderer } from 'electron';
3
+
4
+ import { IPCMessageType } from '../../Types';
5
+ import { logError } from '../../Utils';
6
+
7
+ export async function ipcSend(
8
+ channel: IPCMessageType,
9
+ ...args: any[]
10
+ ): Promise<any> {
11
+ if (!Object.values(IPCMessageType).includes(channel)) {
12
+ logError('Invalid IPCMessageType');
13
+ return;
14
+ }
15
+ //@ts-ignore
16
+ if (process.type === 'renderer') {
17
+ return await ipcRenderer.invoke(channel, ...args);
18
+ } else {
19
+ logError('Not in renderer process, cannot send ipc message');
20
+ }
21
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * This module was automatically generated by `ts-interface-builder`
3
+ */
4
+ import * as t from "ts-interface-checker";
5
+ // tslint:disable:object-literal-key-quotes
6
+
7
+ export const IAudioEncodedFrameObserver = t.iface([], {
8
+ "onRecordAudioEncodedFrame": t.opt(t.func("void", t.param("frameBuffer", "Uint8Array"), t.param("length", "number"), t.param("audioEncodedFrameInfo", "EncodedAudioFrameInfo"))),
9
+ "onPlaybackAudioEncodedFrame": t.opt(t.func("void", t.param("frameBuffer", "Uint8Array"), t.param("length", "number"), t.param("audioEncodedFrameInfo", "EncodedAudioFrameInfo"))),
10
+ "onMixedAudioEncodedFrame": t.opt(t.func("void", t.param("frameBuffer", "Uint8Array"), t.param("length", "number"), t.param("audioEncodedFrameInfo", "EncodedAudioFrameInfo"))),
11
+ });
12
+
13
+ const exportedTypeSuite: t.ITypeSuite = {
14
+ IAudioEncodedFrameObserver,
15
+ };
16
+ export default exportedTypeSuite;