shengwang-electron-sdk 4.6.2-rc.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 +391 -0
  2. package/LICENSE +21 -0
  3. package/README.md +146 -0
  4. package/gulpfile.js +52 -0
  5. package/js/AgoraSdk.js +54 -0
  6. package/js/Decoder/gpu-utils.js +74 -0
  7. package/js/Decoder/index.js +172 -0
  8. package/js/Private/AgoraBase.js +4292 -0
  9. package/js/Private/AgoraMediaBase.js +1017 -0
  10. package/js/Private/AgoraMediaPlayerTypes.js +320 -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 +160 -0
  19. package/js/Private/IAgoraRhythmPlayer.js +62 -0
  20. package/js/Private/IAgoraRtcEngine.js +1042 -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 +960 -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 +1178 -0
  48. package/js/Private/impl/IAgoraRtcEngineImpl.js +5428 -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 +451 -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 +488 -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 +144 -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 +178 -0
  80. package/js/Renderer/CapabilityManager.js +99 -0
  81. package/js/Renderer/IRenderer.js +139 -0
  82. package/js/Renderer/IRendererCache.js +91 -0
  83. package/js/Renderer/RendererCache.js +252 -0
  84. package/js/Renderer/RendererManager.js +250 -0
  85. package/js/Renderer/WebCodecsRenderer/index.js +109 -0
  86. package/js/Renderer/WebCodecsRendererCache.js +127 -0
  87. package/js/Renderer/WebGLRenderer/index.js +467 -0
  88. package/js/Renderer/WebGLRenderer/webgl-utils.js +1337 -0
  89. package/js/Renderer/YUVCanvasRenderer/index.js +53 -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 +168 -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 +102 -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 +44 -0
  107. package/ts/Decoder/gpu-utils.ts +92 -0
  108. package/ts/Decoder/index.ts +210 -0
  109. package/ts/Private/AgoraBase.ts +5941 -0
  110. package/ts/Private/AgoraMediaBase.ts +1814 -0
  111. package/ts/Private/AgoraMediaPlayerTypes.ts +467 -0
  112. package/ts/Private/IAgoraH265Transcoder.ts +73 -0
  113. package/ts/Private/IAgoraLog.ts +93 -0
  114. package/ts/Private/IAgoraMediaEngine.ts +321 -0
  115. package/ts/Private/IAgoraMediaPlayer.ts +759 -0
  116. package/ts/Private/IAgoraMediaPlayerSource.ts +137 -0
  117. package/ts/Private/IAgoraMediaRecorder.ts +65 -0
  118. package/ts/Private/IAgoraMediaStreamingSource.ts +81 -0
  119. package/ts/Private/IAgoraMusicContentCenter.ts +676 -0
  120. package/ts/Private/IAgoraRhythmPlayer.ts +67 -0
  121. package/ts/Private/IAgoraRtcEngine.ts +7909 -0
  122. package/ts/Private/IAgoraRtcEngineEx.ts +1138 -0
  123. package/ts/Private/IAgoraSpatialAudio.ts +248 -0
  124. package/ts/Private/IAudioDeviceManager.ts +351 -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 +238 -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 +1181 -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 +1912 -0
  149. package/ts/Private/impl/IAgoraRtcEngineImpl.ts +7738 -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 +627 -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 +720 -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 +122 -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 +264 -0
  181. package/ts/Renderer/CapabilityManager.ts +126 -0
  182. package/ts/Renderer/IRenderer.ts +163 -0
  183. package/ts/Renderer/IRendererCache.ts +130 -0
  184. package/ts/Renderer/RendererCache.ts +323 -0
  185. package/ts/Renderer/RendererManager.ts +322 -0
  186. package/ts/Renderer/WebCodecsRenderer/index.ts +148 -0
  187. package/ts/Renderer/WebCodecsRendererCache.ts +153 -0
  188. package/ts/Renderer/WebGLRenderer/index.ts +695 -0
  189. package/ts/Renderer/WebGLRenderer/webgl-utils.js +1510 -0
  190. package/ts/Renderer/YUVCanvasRenderer/index.ts +80 -0
  191. package/ts/Renderer/index.ts +1 -0
  192. package/ts/Types.ts +254 -0
  193. package/ts/Utils.ts +198 -0
  194. package/types/AgoraSdk.d.ts +30 -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 +5728 -0
  201. package/types/Private/AgoraBase.d.ts.map +1 -0
  202. package/types/Private/AgoraMediaBase.d.ts +1717 -0
  203. package/types/Private/AgoraMediaBase.d.ts.map +1 -0
  204. package/types/Private/AgoraMediaPlayerTypes.d.ts +456 -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 +91 -0
  209. package/types/Private/IAgoraLog.d.ts.map +1 -0
  210. package/types/Private/IAgoraMediaEngine.d.ts +255 -0
  211. package/types/Private/IAgoraMediaEngine.d.ts.map +1 -0
  212. package/types/Private/IAgoraMediaPlayer.d.ts +662 -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 +60 -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 +602 -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 +6640 -0
  225. package/types/Private/IAgoraRtcEngine.d.ts.map +1 -0
  226. package/types/Private/IAgoraRtcEngineEx.d.ts +847 -0
  227. package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -0
  228. package/types/Private/IAgoraSpatialAudio.d.ts +194 -0
  229. package/types/Private/IAgoraSpatialAudio.d.ts.map +1 -0
  230. package/types/Private/IAudioDeviceManager.d.ts +321 -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 +145 -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 +128 -0
  279. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -0
  280. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts +656 -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 +77 -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 +82 -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 +47 -0
  349. package/types/Renderer/IRendererCache.d.ts.map +1 -0
  350. package/types/Renderer/RendererCache.d.ts +51 -0
  351. package/types/Renderer/RendererCache.d.ts.map +1 -0
  352. package/types/Renderer/RendererManager.d.ts +53 -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 +22 -0
  357. package/types/Renderer/WebCodecsRendererCache.d.ts.map +1 -0
  358. package/types/Renderer/WebGLRenderer/index.d.ts +37 -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 +10 -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 +182 -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,720 @@
1
+ import { createCheckers } from 'ts-interface-checker';
2
+
3
+ import { AgoraElectronBridge } from '../../Private/internal/IrisApiEngine';
4
+ import { AgoraEnv, logDebug, logError, parseIntPtr2Number } from '../../Utils';
5
+ let RendererManager: any;
6
+ let CapabilityManager: any;
7
+ //@ts-ignore
8
+ if (process.type === 'renderer') {
9
+ RendererManager = require('../../Renderer/RendererManager').RendererManager;
10
+ CapabilityManager =
11
+ require('../../Renderer/CapabilityManager').CapabilityManager;
12
+ } else {
13
+ RendererManager = undefined;
14
+ CapabilityManager = undefined;
15
+ }
16
+ import {
17
+ AudioEncodedFrameObserverConfig,
18
+ ClientRoleOptions,
19
+ ClientRoleType,
20
+ ErrorCodeType,
21
+ IAudioEncodedFrameObserver,
22
+ RecorderStreamInfo,
23
+ SimulcastStreamConfig,
24
+ SimulcastStreamMode,
25
+ VideoCanvas,
26
+ VideoMirrorModeType,
27
+ } from '../AgoraBase';
28
+ import {
29
+ IAudioSpectrumObserver,
30
+ RenderModeType,
31
+ VideoSourceType,
32
+ } from '../AgoraMediaBase';
33
+ import { IH265Transcoder } from '../IAgoraH265Transcoder';
34
+ import { IMediaEngine } from '../IAgoraMediaEngine';
35
+ import { IMediaPlayer } from '../IAgoraMediaPlayer';
36
+ import { IMediaRecorder } from '../IAgoraMediaRecorder';
37
+ import { IMusicContentCenter } from '../IAgoraMusicContentCenter';
38
+ import {
39
+ ChannelMediaOptions,
40
+ DirectCdnStreamingMediaOptions,
41
+ IDirectCdnStreamingEventHandler,
42
+ IMetadataObserver,
43
+ IRtcEngineEventHandler,
44
+ IVideoDeviceManager,
45
+ LeaveChannelOptions,
46
+ MetadataType,
47
+ RtcEngineContext,
48
+ SDKBuildInfo,
49
+ ScreenCaptureSourceInfo,
50
+ Size,
51
+ } from '../IAgoraRtcEngine';
52
+ import { RtcConnection } from '../IAgoraRtcEngineEx';
53
+ import { ILocalSpatialAudioEngine } from '../IAgoraSpatialAudio';
54
+ import { IAudioDeviceManager } from '../IAudioDeviceManager';
55
+ import { IRtcEngineEvent } from '../extension/IAgoraRtcEngineExtension';
56
+ import { IRtcEngineExImpl } from '../impl/IAgoraRtcEngineExImpl';
57
+ import { IVideoDeviceManagerImpl } from '../impl/IAgoraRtcEngineImpl';
58
+ import AgoraBaseTI from '../ti/AgoraBase-ti';
59
+ import AgoraMediaBaseTI from '../ti/AgoraMediaBase-ti';
60
+ import IAgoraRtcEngineTI from '../ti/IAgoraRtcEngine-ti';
61
+
62
+ import { H265TranscoderInternal } from './AgoraH265TranscoderInternal';
63
+ import { AudioDeviceManagerInternal } from './AudioDeviceManagerInternal';
64
+ import {
65
+ DeviceEventEmitter,
66
+ EVENT_TYPE,
67
+ EventProcessor,
68
+ callIrisApi,
69
+ } from './IrisApiEngine';
70
+ import { LocalSpatialAudioEngineInternal } from './LocalSpatialAudioEngineInternal';
71
+ import { MediaEngineInternal } from './MediaEngineInternal';
72
+ import { MediaPlayerInternal } from './MediaPlayerInternal';
73
+ import { MediaRecorderInternal } from './MediaRecorderInternal';
74
+ import { MusicContentCenterInternal } from './MusicContentCenterInternal';
75
+
76
+ const checkers = createCheckers(
77
+ AgoraBaseTI,
78
+ AgoraMediaBaseTI,
79
+ IAgoraRtcEngineTI
80
+ );
81
+
82
+ interface PerformanceCounter {
83
+ counters: {
84
+ counterId: number;
85
+ value: number;
86
+ }[];
87
+ uid: number;
88
+ }
89
+
90
+ export class RtcEngineExInternal extends IRtcEngineExImpl {
91
+ static _event_handlers: IRtcEngineEventHandler[] = [];
92
+ static _direct_cdn_streaming_event_handler: IDirectCdnStreamingEventHandler[] =
93
+ [];
94
+ static _metadata_observer: IMetadataObserver[] = [];
95
+ static _audio_encoded_frame_observers: IAudioEncodedFrameObserver[] = [];
96
+ static _audio_spectrum_observers: IAudioSpectrumObserver[] = [];
97
+ private _audio_device_manager: IAudioDeviceManager =
98
+ new AudioDeviceManagerInternal();
99
+ private _video_device_manager: IVideoDeviceManager =
100
+ new IVideoDeviceManagerImpl();
101
+ private _media_engine: IMediaEngine = new MediaEngineInternal();
102
+ private _music_content_center: IMusicContentCenter =
103
+ new MusicContentCenterInternal();
104
+ private _local_spatial_audio_engine: ILocalSpatialAudioEngine =
105
+ new LocalSpatialAudioEngineInternal();
106
+ private _h265_transcoder: IH265Transcoder = new H265TranscoderInternal();
107
+
108
+ private performanceInterval: number = 6000;
109
+ private performanceIntervalFunc: any;
110
+ private VideoRemoteRenderMeanFpsCounterId: number = 537;
111
+ private VideoRemoteRenderDrawCostCounterId: number = 576;
112
+ private VideoLocalRenderMeanFpsCounterId: number = 526;
113
+ private VideoLocalRenderDrawCostCounterId: number = 577;
114
+
115
+ override initialize(context: RtcEngineContext): number {
116
+ const ret = super.initialize(context);
117
+ callIrisApi.call(this, 'RtcEngine_setAppType', {
118
+ appType: 3,
119
+ });
120
+ if (AgoraEnv.webEnvReady) {
121
+ // @ts-ignore
122
+ window.AgoraEnv = AgoraEnv;
123
+ if (AgoraEnv.AgoraRendererManager === undefined && RendererManager) {
124
+ AgoraEnv.AgoraRendererManager = new RendererManager();
125
+ }
126
+ if (AgoraEnv.CapabilityManager === undefined && CapabilityManager) {
127
+ AgoraEnv.CapabilityManager = new CapabilityManager();
128
+ }
129
+ if (AgoraEnv.enableArgusCounters) {
130
+ try {
131
+ this.performanceIntervalFunc = setInterval(() => {
132
+ let rendererManager = AgoraEnv.AgoraRendererManager;
133
+ let counters: {
134
+ data: PerformanceCounter[];
135
+ connection: RtcConnection;
136
+ }[] = [];
137
+ if (rendererManager) {
138
+ rendererManager.getRendererCaches().forEach((cache) => {
139
+ const isRemote =
140
+ cache.callbackContext.sourceType ===
141
+ VideoSourceType.VideoSourceRemote;
142
+ if (
143
+ cache.callbackContext.connection?.channelId &&
144
+ (cache.callbackContext.connection?.localUid || isRemote)
145
+ ) {
146
+ let counter = counters.find(
147
+ (counter) =>
148
+ counter.connection.channelId ===
149
+ cache.callbackContext.connection.channelId &&
150
+ counter.connection.localUid ===
151
+ cache.callbackContext.connection.localUid
152
+ );
153
+ let data: PerformanceCounter = {
154
+ counters: [
155
+ {
156
+ counterId: isRemote
157
+ ? this.VideoRemoteRenderMeanFpsCounterId
158
+ : this.VideoLocalRenderMeanFpsCounterId,
159
+ value: Math.floor(cache.actualFps),
160
+ },
161
+ {
162
+ counterId: isRemote
163
+ ? this.VideoRemoteRenderDrawCostCounterId
164
+ : this.VideoLocalRenderDrawCostCounterId,
165
+ value: Math.floor(cache.avgFrameInterval),
166
+ },
167
+ ],
168
+ uid: isRemote ? cache.cacheContext.uid! : 0,
169
+ };
170
+ if (!counter) {
171
+ counters.push({
172
+ data: [data],
173
+ connection: cache.callbackContext.connection,
174
+ });
175
+ } else {
176
+ counter.data.push(data);
177
+ }
178
+ }
179
+ });
180
+ }
181
+ counters.forEach((counter) => {
182
+ this.setParameters(
183
+ JSON.stringify({ 'rtc.report.argus_counters': counter })
184
+ );
185
+ });
186
+ }, this.performanceInterval);
187
+ } catch (error) {
188
+ logDebug('argus counters report error', error);
189
+ }
190
+ }
191
+ }
192
+ return ret;
193
+ }
194
+
195
+ override release(sync: boolean = false) {
196
+ AgoraElectronBridge.ReleaseRenderer();
197
+ AgoraEnv.AgoraRendererManager?.release();
198
+ AgoraEnv.AgoraRendererManager = undefined;
199
+ this._media_engine.release();
200
+ this._local_spatial_audio_engine.release();
201
+ RtcEngineExInternal._event_handlers = [];
202
+ RtcEngineExInternal._event_handlers.map((it) => {
203
+ super.unregisterEventHandler(it);
204
+ });
205
+ RtcEngineExInternal._direct_cdn_streaming_event_handler = [];
206
+ RtcEngineExInternal._metadata_observer = [];
207
+ RtcEngineExInternal._audio_encoded_frame_observers = [];
208
+ RtcEngineExInternal._audio_spectrum_observers = [];
209
+ MediaPlayerInternal._source_observers.clear();
210
+ MediaPlayerInternal._audio_frame_observers.clear();
211
+ MediaPlayerInternal._video_frame_observers.clear();
212
+ MediaPlayerInternal._audio_spectrum_observers.clear();
213
+ MediaRecorderInternal._observers.clear();
214
+ this._h265_transcoder.release();
215
+ this.removeAllListeners();
216
+ AgoraEnv.CapabilityManager?.release();
217
+ AgoraEnv.CapabilityManager = undefined;
218
+ if (this.performanceIntervalFunc) {
219
+ clearInterval(this.performanceIntervalFunc);
220
+ this.performanceIntervalFunc = undefined;
221
+ }
222
+ super.release(sync);
223
+ }
224
+
225
+ _addListenerPreCheck<EventType extends keyof IRtcEngineEvent>(
226
+ eventType: EventType
227
+ ): boolean {
228
+ if (
229
+ checkers.IRtcEngineEventHandler?.strictTest({ [eventType]: undefined })
230
+ ) {
231
+ if (RtcEngineExInternal._event_handlers.length === 0) {
232
+ this.registerEventHandler({});
233
+ }
234
+ }
235
+ if (
236
+ checkers.IDirectCdnStreamingEventHandler?.strictTest({
237
+ [eventType]: undefined,
238
+ })
239
+ ) {
240
+ if (
241
+ RtcEngineExInternal._direct_cdn_streaming_event_handler.length === 0
242
+ ) {
243
+ logError(
244
+ 'Please call `startDirectCdnStreaming` before you want to receive event by `addListener`'
245
+ );
246
+ return false;
247
+ }
248
+ }
249
+ if (
250
+ checkers.IMetadataObserver?.strictTest({
251
+ [eventType]: undefined,
252
+ })
253
+ ) {
254
+ if (RtcEngineExInternal._metadata_observer.length === 0) {
255
+ logError(
256
+ 'Please call `registerMediaMetadataObserver` before you want to receive event by `addListener`'
257
+ );
258
+ return false;
259
+ }
260
+ }
261
+ if (
262
+ checkers.IAudioEncodedFrameObserver?.strictTest({
263
+ [eventType]: undefined,
264
+ })
265
+ ) {
266
+ if (RtcEngineExInternal._audio_encoded_frame_observers.length === 0) {
267
+ logError(
268
+ 'Please call `registerAudioEncodedFrameObserver` before you want to receive event by `addListener`'
269
+ );
270
+ return false;
271
+ }
272
+ }
273
+ if (
274
+ checkers.IAudioSpectrumObserver?.strictTest({
275
+ [eventType]: undefined,
276
+ })
277
+ ) {
278
+ if (RtcEngineExInternal._audio_spectrum_observers.length === 0) {
279
+ this.registerAudioSpectrumObserver({});
280
+ }
281
+ }
282
+ return true;
283
+ }
284
+
285
+ addListener<EventType extends keyof IRtcEngineEvent>(
286
+ eventType: EventType,
287
+ listener: IRtcEngineEvent[EventType]
288
+ ) {
289
+ this._addListenerPreCheck(eventType);
290
+ const callback = (eventProcessor: EventProcessor<any>, data: any) => {
291
+ if (eventProcessor.type(data) !== EVENT_TYPE.IRtcEngine) {
292
+ return;
293
+ }
294
+ eventProcessor.func.map((it) => {
295
+ it({ [eventType]: listener }, eventType, data);
296
+ });
297
+ };
298
+ // @ts-ignore
299
+ listener!.agoraCallback = callback;
300
+ DeviceEventEmitter.addListener(eventType, callback);
301
+ }
302
+
303
+ removeListener<EventType extends keyof IRtcEngineEvent>(
304
+ eventType: EventType,
305
+ listener?: IRtcEngineEvent[EventType]
306
+ ) {
307
+ DeviceEventEmitter.removeListener(
308
+ eventType,
309
+ // @ts-ignore
310
+ listener?.agoraCallback ?? listener
311
+ );
312
+ }
313
+
314
+ removeAllListeners<EventType extends keyof IRtcEngineEvent>(
315
+ eventType?: EventType
316
+ ) {
317
+ DeviceEventEmitter.removeAllListeners(eventType);
318
+ }
319
+
320
+ override getVersion(): SDKBuildInfo {
321
+ const apiType = 'RtcEngine_getVersion_915cb25';
322
+ const jsonParams = {};
323
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
324
+ return {
325
+ build: jsonResults.build,
326
+ version: jsonResults.result,
327
+ };
328
+ }
329
+
330
+ override registerEventHandler(eventHandler: IRtcEngineEventHandler): boolean {
331
+ // only call iris when no event handler registered
332
+ let callIris = RtcEngineExInternal._event_handlers.length === 0;
333
+ if (
334
+ !RtcEngineExInternal._event_handlers.find(
335
+ (value) => value === eventHandler
336
+ )
337
+ ) {
338
+ RtcEngineExInternal._event_handlers.push(eventHandler);
339
+ }
340
+ return callIris ? super.registerEventHandler(eventHandler) : true;
341
+ }
342
+
343
+ override unregisterEventHandler(
344
+ eventHandler: IRtcEngineEventHandler
345
+ ): boolean {
346
+ RtcEngineExInternal._event_handlers =
347
+ RtcEngineExInternal._event_handlers.filter(
348
+ (value) => value !== eventHandler
349
+ );
350
+ // only call iris when no event handler registered
351
+ let callIris = RtcEngineExInternal._event_handlers.length === 0;
352
+ return callIris ? super.unregisterEventHandler(eventHandler) : true;
353
+ }
354
+
355
+ override createMediaPlayer(): IMediaPlayer {
356
+ // @ts-ignore
357
+ const mediaPlayerId = super.createMediaPlayer() as number;
358
+ return new MediaPlayerInternal(mediaPlayerId);
359
+ }
360
+
361
+ override destroyMediaPlayer(mediaPlayer: IMediaPlayer): number {
362
+ const ret = super.destroyMediaPlayer(mediaPlayer);
363
+ mediaPlayer.release?.call(mediaPlayer);
364
+ return ret;
365
+ }
366
+
367
+ override createMediaRecorder(info: RecorderStreamInfo): IMediaRecorder {
368
+ // @ts-ignore
369
+ const nativeHandle = super.createMediaRecorder(info) as string;
370
+ return new MediaRecorderInternal(nativeHandle);
371
+ }
372
+
373
+ override destroyMediaRecorder(mediaRecorder: IMediaRecorder): number {
374
+ const ret = super.destroyMediaRecorder(mediaRecorder);
375
+ mediaRecorder.release?.call(mediaRecorder);
376
+ return ret;
377
+ }
378
+
379
+ override startDirectCdnStreaming(
380
+ eventHandler: IDirectCdnStreamingEventHandler,
381
+ publishUrl: string,
382
+ options: DirectCdnStreamingMediaOptions
383
+ ): number {
384
+ if (
385
+ !RtcEngineExInternal._direct_cdn_streaming_event_handler.find(
386
+ (value) => value === eventHandler
387
+ )
388
+ ) {
389
+ RtcEngineExInternal._direct_cdn_streaming_event_handler.push(
390
+ eventHandler
391
+ );
392
+ }
393
+ return super.startDirectCdnStreaming(eventHandler, publishUrl, options);
394
+ }
395
+
396
+ override registerMediaMetadataObserver(
397
+ observer: IMetadataObserver,
398
+ type: MetadataType
399
+ ): number {
400
+ if (
401
+ !RtcEngineExInternal._metadata_observer.find(
402
+ (value) => value === observer
403
+ )
404
+ ) {
405
+ RtcEngineExInternal._metadata_observer.push(observer);
406
+ }
407
+ return super.registerMediaMetadataObserver(observer, type);
408
+ }
409
+
410
+ override unregisterMediaMetadataObserver(
411
+ observer: IMetadataObserver,
412
+ type: MetadataType
413
+ ): number {
414
+ RtcEngineExInternal._metadata_observer =
415
+ RtcEngineExInternal._metadata_observer.filter(
416
+ (value) => value !== observer
417
+ );
418
+ return super.unregisterMediaMetadataObserver(observer, type);
419
+ }
420
+
421
+ protected override getApiTypeFromJoinChannel(
422
+ token: string,
423
+ channelId: string,
424
+ uid: number,
425
+ options: ChannelMediaOptions
426
+ ): string {
427
+ if (AgoraEnv.AgoraRendererManager) {
428
+ AgoraEnv.AgoraRendererManager.defaultChannelId = channelId;
429
+ }
430
+ return options === undefined
431
+ ? 'RtcEngine_joinChannel_f097389'
432
+ : 'RtcEngine_joinChannel_cdbb747';
433
+ }
434
+
435
+ protected override getApiTypeFromLeaveChannel(
436
+ options?: LeaveChannelOptions
437
+ ): string {
438
+ return options === undefined
439
+ ? 'RtcEngine_leaveChannel'
440
+ : 'RtcEngine_leaveChannel_2c0e3aa';
441
+ }
442
+
443
+ protected override getApiTypeFromLeaveChannelEx(
444
+ connection: RtcConnection,
445
+ options?: LeaveChannelOptions
446
+ ): string {
447
+ return options === undefined
448
+ ? 'RtcEngineEx_leaveChannelEx_c81e1a4'
449
+ : 'RtcEngineEx_leaveChannelEx_b03ee9a';
450
+ }
451
+
452
+ protected override getApiTypeFromSetClientRole(
453
+ role: ClientRoleType,
454
+ options?: ClientRoleOptions
455
+ ): string {
456
+ return options === undefined
457
+ ? 'RtcEngine_setClientRole_3426fa6'
458
+ : 'RtcEngine_setClientRole_b46cc48';
459
+ }
460
+
461
+ protected override getApiTypeFromEnableDualStreamMode(
462
+ enabled: boolean,
463
+ streamConfig?: SimulcastStreamConfig
464
+ ): string {
465
+ return streamConfig === undefined
466
+ ? 'RtcEngine_enableDualStreamMode_5039d15'
467
+ : 'RtcEngine_enableDualStreamMode_9822d8a';
468
+ }
469
+
470
+ protected override getApiTypeFromSetDualStreamMode(
471
+ mode: SimulcastStreamMode,
472
+ streamConfig?: SimulcastStreamConfig
473
+ ): string {
474
+ return streamConfig === undefined
475
+ ? 'RtcEngine_setDualStreamMode_3a7f662'
476
+ : 'RtcEngine_setDualStreamMode_b3a4f6c';
477
+ }
478
+
479
+ protected override getApiTypeFromJoinChannelWithUserAccount(
480
+ token: string,
481
+ channelId: string,
482
+ userAccount: string,
483
+ options?: ChannelMediaOptions
484
+ ): string {
485
+ if (AgoraEnv.AgoraRendererManager) {
486
+ AgoraEnv.AgoraRendererManager.defaultChannelId = channelId;
487
+ }
488
+ return options === undefined
489
+ ? 'RtcEngine_joinChannelWithUserAccount_0e4f59e'
490
+ : 'RtcEngine_joinChannelWithUserAccount_4685af9';
491
+ }
492
+
493
+ override getAudioDeviceManager(): IAudioDeviceManager {
494
+ return this._audio_device_manager;
495
+ }
496
+
497
+ override getVideoDeviceManager(): IVideoDeviceManager {
498
+ return this._video_device_manager;
499
+ }
500
+
501
+ override getMediaEngine(): IMediaEngine {
502
+ return this._media_engine;
503
+ }
504
+
505
+ override getMusicContentCenter(): IMusicContentCenter {
506
+ return this._music_content_center;
507
+ }
508
+
509
+ override getLocalSpatialAudioEngine(): ILocalSpatialAudioEngine {
510
+ return this._local_spatial_audio_engine;
511
+ }
512
+
513
+ override getH265Transcoder(): IH265Transcoder {
514
+ return this._h265_transcoder;
515
+ }
516
+
517
+ override getNativeHandle(): number {
518
+ let result = super.getNativeHandle();
519
+ return parseIntPtr2Number(result);
520
+ }
521
+
522
+ override registerAudioEncodedFrameObserver(
523
+ config: AudioEncodedFrameObserverConfig,
524
+ observer: IAudioEncodedFrameObserver
525
+ ): number {
526
+ if (
527
+ !RtcEngineExInternal._audio_encoded_frame_observers.find(
528
+ (value) => value === observer
529
+ )
530
+ ) {
531
+ RtcEngineExInternal._audio_encoded_frame_observers.push(observer);
532
+ }
533
+ return super.registerAudioEncodedFrameObserver(config, observer);
534
+ }
535
+
536
+ override unregisterAudioEncodedFrameObserver(
537
+ observer: IAudioEncodedFrameObserver
538
+ ): number {
539
+ RtcEngineExInternal._audio_encoded_frame_observers =
540
+ RtcEngineExInternal._audio_encoded_frame_observers.filter(
541
+ (value) => value !== observer
542
+ );
543
+ return super.unregisterAudioEncodedFrameObserver(observer);
544
+ }
545
+
546
+ override registerAudioSpectrumObserver(
547
+ observer: IAudioSpectrumObserver
548
+ ): number {
549
+ if (
550
+ !RtcEngineExInternal._audio_spectrum_observers.find(
551
+ (value) => value === observer
552
+ )
553
+ ) {
554
+ RtcEngineExInternal._audio_spectrum_observers.push(observer);
555
+ }
556
+ return super.registerAudioSpectrumObserver(observer);
557
+ }
558
+
559
+ override unregisterAudioSpectrumObserver(
560
+ observer: IAudioSpectrumObserver
561
+ ): number {
562
+ RtcEngineExInternal._audio_spectrum_observers =
563
+ RtcEngineExInternal._audio_spectrum_observers.filter(
564
+ (value) => value !== observer
565
+ );
566
+ return super.unregisterAudioSpectrumObserver(observer);
567
+ }
568
+
569
+ override getScreenCaptureSources(
570
+ thumbSize: Size,
571
+ iconSize: Size,
572
+ includeScreen: boolean
573
+ ): ScreenCaptureSourceInfo[] {
574
+ const apiType = this.getApiTypeFromGetScreenCaptureSources(
575
+ thumbSize,
576
+ iconSize,
577
+ includeScreen
578
+ );
579
+ const jsonParams = {
580
+ thumbSize: thumbSize,
581
+ iconSize: iconSize,
582
+ includeScreen: includeScreen,
583
+ toJSON: () => {
584
+ return {
585
+ thumbSize: thumbSize,
586
+ iconSize: iconSize,
587
+ includeScreen: includeScreen,
588
+ };
589
+ },
590
+ };
591
+ const { result, sources } = callIrisApi.call(this, apiType, jsonParams);
592
+ const screenCaptureSources = result.map(
593
+ (value: ScreenCaptureSourceInfo) => {
594
+ if (!value.thumbImage?.buffer || !value.thumbImage?.length) {
595
+ value.thumbImage!.buffer = undefined;
596
+ } else {
597
+ value.thumbImage!.buffer = AgoraElectronBridge.GetBuffer(
598
+ value.thumbImage!.buffer as unknown as number,
599
+ value.thumbImage.length!
600
+ );
601
+ }
602
+ if (!value.iconImage?.buffer || !value.iconImage?.length) {
603
+ value.iconImage!.buffer = undefined;
604
+ } else {
605
+ value.iconImage.buffer = AgoraElectronBridge.GetBuffer(
606
+ value.iconImage!.buffer as unknown as number,
607
+ value.iconImage.length!
608
+ );
609
+ }
610
+ value.sourceDisplayId = parseIntPtr2Number(value.sourceDisplayId!);
611
+ return value;
612
+ }
613
+ );
614
+ callIrisApi.call(this, 'RtcEngine_releaseScreenCaptureSources', {
615
+ sources,
616
+ });
617
+ return screenCaptureSources;
618
+ }
619
+
620
+ override setupLocalVideo(canvas: VideoCanvas): number {
621
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
622
+ const renderer = AgoraEnv.AgoraRendererManager.addOrRemoveRenderer(canvas);
623
+ if (!renderer) return -ErrorCodeType.ErrFailed;
624
+ return ErrorCodeType.ErrOk;
625
+ }
626
+
627
+ override setupRemoteVideo(canvas: VideoCanvas): number {
628
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
629
+ const renderer = AgoraEnv.AgoraRendererManager.addOrRemoveRenderer(canvas);
630
+ if (!renderer) return -ErrorCodeType.ErrFailed;
631
+ return ErrorCodeType.ErrOk;
632
+ }
633
+
634
+ override setupRemoteVideoEx(
635
+ canvas: VideoCanvas,
636
+ connection: RtcConnection
637
+ ): number {
638
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
639
+ const renderer = AgoraEnv.AgoraRendererManager.addOrRemoveRenderer({
640
+ ...canvas,
641
+ ...connection,
642
+ });
643
+ if (!renderer) return -ErrorCodeType.ErrFailed;
644
+ return ErrorCodeType.ErrOk;
645
+ }
646
+
647
+ override setLocalRenderMode(
648
+ renderMode: RenderModeType,
649
+ mirrorMode: VideoMirrorModeType = VideoMirrorModeType.VideoMirrorModeAuto
650
+ ): number {
651
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
652
+ const result = AgoraEnv.AgoraRendererManager.setRendererContext({
653
+ sourceType: VideoSourceType.VideoSourceCamera,
654
+ renderMode,
655
+ mirrorMode,
656
+ });
657
+ if (!result) return -ErrorCodeType.ErrFailed;
658
+ return ErrorCodeType.ErrOk;
659
+ }
660
+
661
+ override setRemoteRenderMode(
662
+ uid: number,
663
+ renderMode: RenderModeType,
664
+ mirrorMode: VideoMirrorModeType
665
+ ): number {
666
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
667
+ const result = AgoraEnv.AgoraRendererManager.setRendererContext({
668
+ sourceType: VideoSourceType.VideoSourceRemote,
669
+ uid,
670
+ renderMode,
671
+ mirrorMode,
672
+ });
673
+ if (!result) return -ErrorCodeType.ErrFailed;
674
+ return ErrorCodeType.ErrOk;
675
+ }
676
+
677
+ override setRemoteRenderModeEx(
678
+ uid: number,
679
+ renderMode: RenderModeType,
680
+ mirrorMode: VideoMirrorModeType,
681
+ connection: RtcConnection
682
+ ): number {
683
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
684
+ const result = AgoraEnv.AgoraRendererManager.setRendererContext({
685
+ sourceType: VideoSourceType.VideoSourceRemote,
686
+ ...connection,
687
+ uid,
688
+ renderMode,
689
+ mirrorMode,
690
+ });
691
+ if (!result) return -ErrorCodeType.ErrFailed;
692
+ return ErrorCodeType.ErrOk;
693
+ }
694
+
695
+ override setLocalVideoMirrorMode(mirrorMode: VideoMirrorModeType): number {
696
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
697
+ const result = AgoraEnv.AgoraRendererManager.setRendererContext({
698
+ sourceType: VideoSourceType.VideoSourceCamera,
699
+ mirrorMode,
700
+ });
701
+ if (!result) return -ErrorCodeType.ErrFailed;
702
+ return ErrorCodeType.ErrOk;
703
+ }
704
+
705
+ override destroyRendererByView(view: Element) {
706
+ AgoraEnv.AgoraRendererManager?.removeRendererFromCache({ view });
707
+ }
708
+
709
+ override destroyRendererByConfig(
710
+ sourceType: VideoSourceType,
711
+ channelId?: string,
712
+ uid?: number
713
+ ) {
714
+ AgoraEnv.AgoraRendererManager?.removeRendererFromCache({
715
+ sourceType,
716
+ channelId,
717
+ uid,
718
+ });
719
+ }
720
+ }