agora-electron-sdk 4.5.2 → 4.5.3-dev.2

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 (411) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +6 -3
  3. package/js/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.js +395 -0
  4. package/js/{AgoraSdk.js → ts/AgoraSdk.js} +2 -12
  5. package/js/{Decoder → ts/Decoder}/index.js +1 -1
  6. package/js/{Private → ts/Private}/AgoraBase.js +829 -674
  7. package/js/{Private → ts/Private}/AgoraMediaBase.js +154 -151
  8. package/js/{Private → ts/Private}/AgoraMediaPlayerTypes.js +58 -54
  9. package/js/{Private → ts/Private}/IAgoraLog.js +13 -13
  10. package/js/{Private → ts/Private}/IAgoraMediaEngine.js +4 -4
  11. package/js/{Private → ts/Private}/IAgoraMediaPlayer.js +2 -2
  12. package/js/{Private → ts/Private}/IAgoraMusicContentCenter.js +1 -1
  13. package/js/{Private → ts/Private}/IAgoraRhythmPlayer.js +13 -13
  14. package/js/{Private → ts/Private}/IAgoraRtcEngine.js +150 -94
  15. package/js/{Private → ts/Private}/IAgoraRtcEngineEx.js +3 -3
  16. package/js/{Private → ts/Private}/IAgoraSpatialAudio.js +4 -4
  17. package/js/{Private → ts/Private}/IAudioDeviceManager.js +2 -2
  18. package/js/{Private → ts/Private}/impl/IAgoraMediaPlayerImpl.js +10 -0
  19. package/js/{Private → ts/Private}/impl/IAgoraRtcEngineExImpl.js +74 -0
  20. package/js/{Private → ts/Private}/impl/IAgoraRtcEngineImpl.js +233 -1
  21. package/js/{Private → ts/Private}/internal/IrisApiEngine.js +45 -0
  22. package/js/{Private → ts/Private}/internal/RtcEngineExInternal.js +74 -4
  23. package/js/ts/Private/internal/VideoEffectObjectInternal.js +14 -0
  24. package/js/{Private → ts/Private}/ti/IAgoraRtcEngine-ti.js +2 -0
  25. package/js/{Renderer → ts/Renderer}/AgoraView.js +19 -2
  26. package/js/{Renderer → ts/Renderer}/IRenderer.js +7 -4
  27. package/js/{Renderer → ts/Renderer}/IRendererCache.js +17 -1
  28. package/js/ts/Renderer/RendererCache.js +252 -0
  29. package/js/{Renderer → ts/Renderer}/RendererManager.js +13 -64
  30. package/js/{Renderer → ts/Renderer}/WebCodecsRenderer/index.js +5 -5
  31. package/js/{Renderer → ts/Renderer}/WebCodecsRendererCache.js +13 -1
  32. package/js/{Renderer → ts/Renderer}/WebGLRenderer/index.js +179 -26
  33. package/js/{Renderer → ts/Renderer}/YUVCanvasRenderer/index.js +12 -5
  34. package/js/{Utils.js → ts/Utils.js} +7 -7
  35. package/package.json +25 -12
  36. package/scripts/checkElectron.js +4 -2
  37. package/scripts/download.js +102 -0
  38. package/scripts/downloadPrebuild.js +2 -1
  39. package/scripts/synclib.js +2 -2
  40. package/ts/AgoraSdk.ts +2 -12
  41. package/ts/Decoder/index.ts +5 -1
  42. package/ts/Private/AgoraBase.ts +1259 -1060
  43. package/ts/Private/AgoraMediaBase.ts +351 -324
  44. package/ts/Private/AgoraMediaPlayerTypes.ts +94 -91
  45. package/ts/Private/IAgoraLog.ts +20 -18
  46. package/ts/Private/IAgoraMediaEngine.ts +86 -81
  47. package/ts/Private/IAgoraMediaPlayer.ts +196 -181
  48. package/ts/Private/IAgoraMediaPlayerSource.ts +40 -40
  49. package/ts/Private/IAgoraMusicContentCenter.ts +3 -3
  50. package/ts/Private/IAgoraRhythmPlayer.ts +15 -15
  51. package/ts/Private/IAgoraRtcEngine.ts +2492 -2047
  52. package/ts/Private/IAgoraRtcEngineEx.ts +434 -335
  53. package/ts/Private/IAgoraSpatialAudio.ts +43 -45
  54. package/ts/Private/IAudioDeviceManager.ts +106 -97
  55. package/ts/Private/impl/IAgoraMediaPlayerImpl.ts +12 -0
  56. package/ts/Private/impl/IAgoraRtcEngineExImpl.ts +138 -0
  57. package/ts/Private/impl/IAgoraRtcEngineImpl.ts +331 -0
  58. package/ts/Private/internal/IrisApiEngine.ts +47 -0
  59. package/ts/Private/internal/RtcEngineExInternal.ts +106 -9
  60. package/ts/Private/internal/VideoEffectObjectInternal.ts +14 -0
  61. package/ts/Private/ti/IAgoraRtcEngine-ti.ts +2 -0
  62. package/ts/Renderer/AgoraView.ts +32 -3
  63. package/ts/Renderer/IRenderer.ts +8 -3
  64. package/ts/Renderer/IRendererCache.ts +33 -0
  65. package/ts/Renderer/RendererCache.ts +211 -12
  66. package/ts/Renderer/RendererManager.ts +21 -99
  67. package/ts/Renderer/WebCodecsRenderer/index.ts +9 -6
  68. package/ts/Renderer/WebCodecsRendererCache.ts +17 -1
  69. package/ts/Renderer/WebGLRenderer/index.ts +246 -40
  70. package/ts/Renderer/YUVCanvasRenderer/index.ts +29 -16
  71. package/ts/Types.ts +14 -9
  72. package/ts/Utils.ts +8 -7
  73. package/types/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.d.ts +168 -0
  74. package/types/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.d.ts.map +1 -0
  75. package/types/{AgoraSdk.d.ts → ts/AgoraSdk.d.ts} +2 -12
  76. package/types/ts/AgoraSdk.d.ts.map +1 -0
  77. package/types/ts/Decoder/gpu-utils.d.ts.map +1 -0
  78. package/types/ts/Decoder/index.d.ts.map +1 -0
  79. package/types/ts/Private/AgoraBase.d.ts +5504 -0
  80. package/types/ts/Private/AgoraBase.d.ts.map +1 -0
  81. package/types/ts/Private/AgoraMediaBase.d.ts +1695 -0
  82. package/types/ts/Private/AgoraMediaBase.d.ts.map +1 -0
  83. package/types/ts/Private/AgoraMediaPlayerTypes.d.ts +456 -0
  84. package/types/ts/Private/AgoraMediaPlayerTypes.d.ts.map +1 -0
  85. package/types/ts/Private/IAgoraH265Transcoder.d.ts.map +1 -0
  86. package/types/ts/Private/IAgoraLog.d.ts +91 -0
  87. package/types/ts/Private/IAgoraLog.d.ts.map +1 -0
  88. package/types/ts/Private/IAgoraMediaEngine.d.ts +255 -0
  89. package/types/ts/Private/IAgoraMediaEngine.d.ts.map +1 -0
  90. package/types/ts/Private/IAgoraMediaPlayer.d.ts +662 -0
  91. package/types/ts/Private/IAgoraMediaPlayer.d.ts.map +1 -0
  92. package/types/ts/Private/IAgoraMediaPlayerSource.d.ts +109 -0
  93. package/types/ts/Private/IAgoraMediaPlayerSource.d.ts.map +1 -0
  94. package/types/ts/Private/IAgoraMediaRecorder.d.ts.map +1 -0
  95. package/types/ts/Private/IAgoraMediaStreamingSource.d.ts.map +1 -0
  96. package/types/{Private → ts/Private}/IAgoraMusicContentCenter.d.ts +3 -3
  97. package/types/ts/Private/IAgoraMusicContentCenter.d.ts.map +1 -0
  98. package/types/ts/Private/IAgoraRhythmPlayer.d.ts +65 -0
  99. package/types/ts/Private/IAgoraRhythmPlayer.d.ts.map +1 -0
  100. package/types/ts/Private/IAgoraRtcEngine.d.ts +6504 -0
  101. package/types/ts/Private/IAgoraRtcEngine.d.ts.map +1 -0
  102. package/types/ts/Private/IAgoraRtcEngineEx.d.ts +817 -0
  103. package/types/ts/Private/IAgoraRtcEngineEx.d.ts.map +1 -0
  104. package/types/ts/Private/IAgoraSpatialAudio.d.ts +194 -0
  105. package/types/ts/Private/IAgoraSpatialAudio.d.ts.map +1 -0
  106. package/types/ts/Private/IAudioDeviceManager.d.ts +321 -0
  107. package/types/ts/Private/IAudioDeviceManager.d.ts.map +1 -0
  108. package/types/ts/Private/extension/AgoraBaseExtension.d.ts.map +1 -0
  109. package/types/ts/Private/extension/AgoraMediaBaseExtension.d.ts.map +1 -0
  110. package/types/ts/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +1 -0
  111. package/types/ts/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +1 -0
  112. package/types/ts/Private/extension/IAgoraLogExtension.d.ts.map +1 -0
  113. package/types/ts/Private/extension/IAgoraMediaEngineExtension.d.ts.map +1 -0
  114. package/types/ts/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +1 -0
  115. package/types/ts/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +1 -0
  116. package/types/ts/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +1 -0
  117. package/types/ts/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +1 -0
  118. package/types/ts/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +1 -0
  119. package/types/ts/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +1 -0
  120. package/types/ts/Private/extension/IAgoraRtcEngineExtension.d.ts.map +1 -0
  121. package/types/ts/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +1 -0
  122. package/types/ts/Private/extension/IAudioDeviceManagerExtension.d.ts.map +1 -0
  123. package/types/ts/Private/impl/AgoraBaseImpl.d.ts.map +1 -0
  124. package/types/ts/Private/impl/AgoraMediaBaseImpl.d.ts.map +1 -0
  125. package/types/ts/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +1 -0
  126. package/types/ts/Private/impl/IAgoraMediaEngineImpl.d.ts.map +1 -0
  127. package/types/{Private → ts/Private}/impl/IAgoraMediaPlayerImpl.d.ts +2 -0
  128. package/types/ts/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +1 -0
  129. package/types/ts/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +1 -0
  130. package/types/ts/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +1 -0
  131. package/types/ts/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +1 -0
  132. package/types/{Private → ts/Private}/impl/IAgoraRtcEngineExImpl.d.ts +7 -1
  133. package/types/ts/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -0
  134. package/types/{Private → ts/Private}/impl/IAgoraRtcEngineImpl.d.ts +27 -1
  135. package/types/ts/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -0
  136. package/types/ts/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +1 -0
  137. package/types/ts/Private/impl/IAudioDeviceManagerImpl.d.ts.map +1 -0
  138. package/types/ts/Private/internal/AgoraH265TranscoderInternal.d.ts.map +1 -0
  139. package/types/ts/Private/internal/AgoraMediaBaseInternal.d.ts.map +1 -0
  140. package/types/ts/Private/internal/AudioDeviceManagerInternal.d.ts.map +1 -0
  141. package/types/ts/Private/internal/IrisApiEngine.d.ts.map +1 -0
  142. package/types/ts/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +1 -0
  143. package/types/ts/Private/internal/MediaEngineInternal.d.ts.map +1 -0
  144. package/types/ts/Private/internal/MediaPlayerInternal.d.ts.map +1 -0
  145. package/types/ts/Private/internal/MediaRecorderInternal.d.ts.map +1 -0
  146. package/types/ts/Private/internal/MusicContentCenterInternal.d.ts.map +1 -0
  147. package/types/{Private → ts/Private}/internal/RtcEngineExInternal.d.ts +10 -4
  148. package/types/ts/Private/internal/RtcEngineExInternal.d.ts.map +1 -0
  149. package/types/ts/Private/internal/VideoEffectObjectInternal.d.ts +7 -0
  150. package/types/ts/Private/internal/VideoEffectObjectInternal.d.ts.map +1 -0
  151. package/types/{Private → ts/Private}/ipc/main.d.ts.map +1 -1
  152. package/types/ts/Private/ipc/renderer.d.ts.map +1 -0
  153. package/types/ts/Private/ti/AgoraBase-ti.d.ts.map +1 -0
  154. package/types/ts/Private/ti/AgoraMediaBase-ti.d.ts.map +1 -0
  155. package/types/ts/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +1 -0
  156. package/types/ts/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +1 -0
  157. package/types/ts/Private/ti/IAgoraLog-ti.d.ts.map +1 -0
  158. package/types/ts/Private/ti/IAgoraMediaEngine-ti.d.ts.map +1 -0
  159. package/types/ts/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +1 -0
  160. package/types/ts/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +1 -0
  161. package/types/ts/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +1 -0
  162. package/types/ts/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +1 -0
  163. package/types/ts/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +1 -0
  164. package/types/ts/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +1 -0
  165. package/types/ts/Private/ti/IAgoraRtcEngine-ti.d.ts.map +1 -0
  166. package/types/ts/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +1 -0
  167. package/types/ts/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +1 -0
  168. package/types/ts/Private/ti/IAudioDeviceManager-ti.d.ts.map +1 -0
  169. package/types/{Renderer → ts/Renderer}/AgoraView.d.ts +6 -0
  170. package/types/ts/Renderer/AgoraView.d.ts.map +1 -0
  171. package/types/ts/Renderer/CapabilityManager.d.ts.map +1 -0
  172. package/types/{Renderer → ts/Renderer}/IRenderer.d.ts +2 -2
  173. package/types/ts/Renderer/IRenderer.d.ts.map +1 -0
  174. package/types/{Renderer → ts/Renderer}/IRendererCache.d.ts +21 -1
  175. package/types/ts/Renderer/IRendererCache.d.ts.map +1 -0
  176. package/types/{Renderer → ts/Renderer}/RendererCache.d.ts +27 -0
  177. package/types/ts/Renderer/RendererCache.d.ts.map +1 -0
  178. package/types/{Renderer → ts/Renderer}/RendererManager.d.ts +4 -17
  179. package/types/ts/Renderer/RendererManager.d.ts.map +1 -0
  180. package/types/{Renderer → ts/Renderer}/WebCodecsRenderer/index.d.ts +3 -3
  181. package/types/ts/Renderer/WebCodecsRenderer/index.d.ts.map +1 -0
  182. package/types/{Renderer → ts/Renderer}/WebCodecsRendererCache.d.ts +7 -0
  183. package/types/ts/Renderer/WebCodecsRendererCache.d.ts.map +1 -0
  184. package/types/{Renderer → ts/Renderer}/WebGLRenderer/index.d.ts +12 -2
  185. package/types/ts/Renderer/WebGLRenderer/index.d.ts.map +1 -0
  186. package/types/ts/Renderer/WebGLRenderer/webgl-utils.d.ts.map +1 -0
  187. package/types/ts/Renderer/YUVCanvasRenderer/index.d.ts +10 -0
  188. package/types/ts/Renderer/YUVCanvasRenderer/index.d.ts.map +1 -0
  189. package/types/ts/Renderer/index.d.ts.map +1 -0
  190. package/types/{Types.d.ts → ts/Types.d.ts} +11 -6
  191. package/types/ts/Types.d.ts.map +1 -0
  192. package/types/{Utils.d.ts → ts/Utils.d.ts} +1 -1
  193. package/types/ts/Utils.d.ts.map +1 -0
  194. package/js/Renderer/RendererCache.js +0 -100
  195. package/types/AgoraSdk.d.ts.map +0 -1
  196. package/types/Decoder/gpu-utils.d.ts.map +0 -1
  197. package/types/Decoder/index.d.ts.map +0 -1
  198. package/types/Private/AgoraBase.d.ts +0 -5310
  199. package/types/Private/AgoraBase.d.ts.map +0 -1
  200. package/types/Private/AgoraMediaBase.d.ts +0 -1668
  201. package/types/Private/AgoraMediaBase.d.ts.map +0 -1
  202. package/types/Private/AgoraMediaPlayerTypes.d.ts +0 -453
  203. package/types/Private/AgoraMediaPlayerTypes.d.ts.map +0 -1
  204. package/types/Private/IAgoraH265Transcoder.d.ts.map +0 -1
  205. package/types/Private/IAgoraLog.d.ts +0 -89
  206. package/types/Private/IAgoraLog.d.ts.map +0 -1
  207. package/types/Private/IAgoraMediaEngine.d.ts +0 -250
  208. package/types/Private/IAgoraMediaEngine.d.ts.map +0 -1
  209. package/types/Private/IAgoraMediaPlayer.d.ts +0 -648
  210. package/types/Private/IAgoraMediaPlayer.d.ts.map +0 -1
  211. package/types/Private/IAgoraMediaPlayerSource.d.ts +0 -109
  212. package/types/Private/IAgoraMediaPlayerSource.d.ts.map +0 -1
  213. package/types/Private/IAgoraMediaRecorder.d.ts.map +0 -1
  214. package/types/Private/IAgoraMediaStreamingSource.d.ts.map +0 -1
  215. package/types/Private/IAgoraMusicContentCenter.d.ts.map +0 -1
  216. package/types/Private/IAgoraRhythmPlayer.d.ts +0 -65
  217. package/types/Private/IAgoraRhythmPlayer.d.ts.map +0 -1
  218. package/types/Private/IAgoraRtcEngine.d.ts +0 -6103
  219. package/types/Private/IAgoraRtcEngine.d.ts.map +0 -1
  220. package/types/Private/IAgoraRtcEngineEx.d.ts +0 -741
  221. package/types/Private/IAgoraRtcEngineEx.d.ts.map +0 -1
  222. package/types/Private/IAgoraSpatialAudio.d.ts +0 -196
  223. package/types/Private/IAgoraSpatialAudio.d.ts.map +0 -1
  224. package/types/Private/IAudioDeviceManager.d.ts +0 -312
  225. package/types/Private/IAudioDeviceManager.d.ts.map +0 -1
  226. package/types/Private/extension/AgoraBaseExtension.d.ts.map +0 -1
  227. package/types/Private/extension/AgoraMediaBaseExtension.d.ts.map +0 -1
  228. package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +0 -1
  229. package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +0 -1
  230. package/types/Private/extension/IAgoraLogExtension.d.ts.map +0 -1
  231. package/types/Private/extension/IAgoraMediaEngineExtension.d.ts.map +0 -1
  232. package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +0 -1
  233. package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +0 -1
  234. package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +0 -1
  235. package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +0 -1
  236. package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +0 -1
  237. package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +0 -1
  238. package/types/Private/extension/IAgoraRtcEngineExtension.d.ts.map +0 -1
  239. package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +0 -1
  240. package/types/Private/extension/IAudioDeviceManagerExtension.d.ts.map +0 -1
  241. package/types/Private/impl/AgoraBaseImpl.d.ts.map +0 -1
  242. package/types/Private/impl/AgoraMediaBaseImpl.d.ts.map +0 -1
  243. package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +0 -1
  244. package/types/Private/impl/IAgoraMediaEngineImpl.d.ts.map +0 -1
  245. package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +0 -1
  246. package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +0 -1
  247. package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +0 -1
  248. package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +0 -1
  249. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +0 -1
  250. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +0 -1
  251. package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +0 -1
  252. package/types/Private/impl/IAudioDeviceManagerImpl.d.ts.map +0 -1
  253. package/types/Private/internal/AgoraH265TranscoderInternal.d.ts.map +0 -1
  254. package/types/Private/internal/AgoraMediaBaseInternal.d.ts.map +0 -1
  255. package/types/Private/internal/AudioDeviceManagerInternal.d.ts.map +0 -1
  256. package/types/Private/internal/IrisApiEngine.d.ts.map +0 -1
  257. package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +0 -1
  258. package/types/Private/internal/MediaEngineInternal.d.ts.map +0 -1
  259. package/types/Private/internal/MediaPlayerInternal.d.ts.map +0 -1
  260. package/types/Private/internal/MediaRecorderInternal.d.ts.map +0 -1
  261. package/types/Private/internal/MusicContentCenterInternal.d.ts.map +0 -1
  262. package/types/Private/internal/RtcEngineExInternal.d.ts.map +0 -1
  263. package/types/Private/ipc/renderer.d.ts.map +0 -1
  264. package/types/Private/ti/AgoraBase-ti.d.ts.map +0 -1
  265. package/types/Private/ti/AgoraMediaBase-ti.d.ts.map +0 -1
  266. package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +0 -1
  267. package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +0 -1
  268. package/types/Private/ti/IAgoraLog-ti.d.ts.map +0 -1
  269. package/types/Private/ti/IAgoraMediaEngine-ti.d.ts.map +0 -1
  270. package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +0 -1
  271. package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +0 -1
  272. package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +0 -1
  273. package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +0 -1
  274. package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +0 -1
  275. package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +0 -1
  276. package/types/Private/ti/IAgoraRtcEngine-ti.d.ts.map +0 -1
  277. package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +0 -1
  278. package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +0 -1
  279. package/types/Private/ti/IAudioDeviceManager-ti.d.ts.map +0 -1
  280. package/types/Renderer/AgoraView.d.ts.map +0 -1
  281. package/types/Renderer/CapabilityManager.d.ts.map +0 -1
  282. package/types/Renderer/IRenderer.d.ts.map +0 -1
  283. package/types/Renderer/IRendererCache.d.ts.map +0 -1
  284. package/types/Renderer/RendererCache.d.ts.map +0 -1
  285. package/types/Renderer/RendererManager.d.ts.map +0 -1
  286. package/types/Renderer/WebCodecsRenderer/index.d.ts.map +0 -1
  287. package/types/Renderer/WebCodecsRendererCache.d.ts.map +0 -1
  288. package/types/Renderer/WebGLRenderer/index.d.ts.map +0 -1
  289. package/types/Renderer/WebGLRenderer/webgl-utils.d.ts.map +0 -1
  290. package/types/Renderer/YUVCanvasRenderer/index.d.ts +0 -9
  291. package/types/Renderer/YUVCanvasRenderer/index.d.ts.map +0 -1
  292. package/types/Renderer/index.d.ts.map +0 -1
  293. package/types/Types.d.ts.map +0 -1
  294. package/types/Utils.d.ts.map +0 -1
  295. /package/js/{Decoder → ts/Decoder}/gpu-utils.js +0 -0
  296. /package/js/{Private → ts/Private}/IAgoraH265Transcoder.js +0 -0
  297. /package/js/{Private → ts/Private}/IAgoraMediaPlayerSource.js +0 -0
  298. /package/js/{Private → ts/Private}/IAgoraMediaRecorder.js +0 -0
  299. /package/js/{Private → ts/Private}/IAgoraMediaStreamingSource.js +0 -0
  300. /package/js/{Private → ts/Private}/extension/AgoraBaseExtension.js +0 -0
  301. /package/js/{Private → ts/Private}/extension/AgoraMediaBaseExtension.js +0 -0
  302. /package/js/{Private → ts/Private}/extension/AgoraMediaPlayerTypesExtension.js +0 -0
  303. /package/js/{Private → ts/Private}/extension/IAgoraH265TranscoderExtension.js +0 -0
  304. /package/js/{Private → ts/Private}/extension/IAgoraLogExtension.js +0 -0
  305. /package/js/{Private → ts/Private}/extension/IAgoraMediaEngineExtension.js +0 -0
  306. /package/js/{Private → ts/Private}/extension/IAgoraMediaPlayerExtension.js +0 -0
  307. /package/js/{Private → ts/Private}/extension/IAgoraMediaPlayerSourceExtension.js +0 -0
  308. /package/js/{Private → ts/Private}/extension/IAgoraMediaRecorderExtension.js +0 -0
  309. /package/js/{Private → ts/Private}/extension/IAgoraMusicContentCenterExtension.js +0 -0
  310. /package/js/{Private → ts/Private}/extension/IAgoraRhythmPlayerExtension.js +0 -0
  311. /package/js/{Private → ts/Private}/extension/IAgoraRtcEngineExExtension.js +0 -0
  312. /package/js/{Private → ts/Private}/extension/IAgoraRtcEngineExtension.js +0 -0
  313. /package/js/{Private → ts/Private}/extension/IAgoraSpatialAudioExtension.js +0 -0
  314. /package/js/{Private → ts/Private}/extension/IAudioDeviceManagerExtension.js +0 -0
  315. /package/js/{Private → ts/Private}/impl/AgoraBaseImpl.js +0 -0
  316. /package/js/{Private → ts/Private}/impl/AgoraMediaBaseImpl.js +0 -0
  317. /package/js/{Private → ts/Private}/impl/IAgoraH265TranscoderImpl.js +0 -0
  318. /package/js/{Private → ts/Private}/impl/IAgoraMediaEngineImpl.js +0 -0
  319. /package/js/{Private → ts/Private}/impl/IAgoraMediaPlayerSourceImpl.js +0 -0
  320. /package/js/{Private → ts/Private}/impl/IAgoraMediaRecorderImpl.js +0 -0
  321. /package/js/{Private → ts/Private}/impl/IAgoraMusicContentCenterImpl.js +0 -0
  322. /package/js/{Private → ts/Private}/impl/IAgoraSpatialAudioImpl.js +0 -0
  323. /package/js/{Private → ts/Private}/impl/IAudioDeviceManagerImpl.js +0 -0
  324. /package/js/{Private → ts/Private}/internal/AgoraH265TranscoderInternal.js +0 -0
  325. /package/js/{Private → ts/Private}/internal/AgoraMediaBaseInternal.js +0 -0
  326. /package/js/{Private → ts/Private}/internal/AudioDeviceManagerInternal.js +0 -0
  327. /package/js/{Private → ts/Private}/internal/LocalSpatialAudioEngineInternal.js +0 -0
  328. /package/js/{Private → ts/Private}/internal/MediaEngineInternal.js +0 -0
  329. /package/js/{Private → ts/Private}/internal/MediaPlayerInternal.js +0 -0
  330. /package/js/{Private → ts/Private}/internal/MediaRecorderInternal.js +0 -0
  331. /package/js/{Private → ts/Private}/internal/MusicContentCenterInternal.js +0 -0
  332. /package/js/{Private → ts/Private}/ipc/main.js +0 -0
  333. /package/js/{Private → ts/Private}/ipc/renderer.js +0 -0
  334. /package/js/{Private → ts/Private}/ti/AgoraBase-ti.js +0 -0
  335. /package/js/{Private → ts/Private}/ti/AgoraMediaBase-ti.js +0 -0
  336. /package/js/{Private → ts/Private}/ti/AgoraMediaPlayerTypes-ti.js +0 -0
  337. /package/js/{Private → ts/Private}/ti/IAgoraH265Transcoder-ti.js +0 -0
  338. /package/js/{Private → ts/Private}/ti/IAgoraLog-ti.js +0 -0
  339. /package/js/{Private → ts/Private}/ti/IAgoraMediaEngine-ti.js +0 -0
  340. /package/js/{Private → ts/Private}/ti/IAgoraMediaPlayer-ti.js +0 -0
  341. /package/js/{Private → ts/Private}/ti/IAgoraMediaPlayerSource-ti.js +0 -0
  342. /package/js/{Private → ts/Private}/ti/IAgoraMediaRecorder-ti.js +0 -0
  343. /package/js/{Private → ts/Private}/ti/IAgoraMediaStreamingSource-ti.js +0 -0
  344. /package/js/{Private → ts/Private}/ti/IAgoraMusicContentCenter-ti.js +0 -0
  345. /package/js/{Private → ts/Private}/ti/IAgoraRhythmPlayer-ti.js +0 -0
  346. /package/js/{Private → ts/Private}/ti/IAgoraRtcEngineEx-ti.js +0 -0
  347. /package/js/{Private → ts/Private}/ti/IAgoraSpatialAudio-ti.js +0 -0
  348. /package/js/{Private → ts/Private}/ti/IAudioDeviceManager-ti.js +0 -0
  349. /package/js/{Renderer → ts/Renderer}/CapabilityManager.js +0 -0
  350. /package/js/{Renderer → ts/Renderer}/WebGLRenderer/webgl-utils.js +0 -0
  351. /package/js/{Renderer → ts/Renderer}/index.js +0 -0
  352. /package/js/{Types.js → ts/Types.js} +0 -0
  353. /package/types/{Decoder → ts/Decoder}/gpu-utils.d.ts +0 -0
  354. /package/types/{Decoder → ts/Decoder}/index.d.ts +0 -0
  355. /package/types/{Private → ts/Private}/IAgoraH265Transcoder.d.ts +0 -0
  356. /package/types/{Private → ts/Private}/IAgoraMediaRecorder.d.ts +0 -0
  357. /package/types/{Private → ts/Private}/IAgoraMediaStreamingSource.d.ts +0 -0
  358. /package/types/{Private → ts/Private}/extension/AgoraBaseExtension.d.ts +0 -0
  359. /package/types/{Private → ts/Private}/extension/AgoraMediaBaseExtension.d.ts +0 -0
  360. /package/types/{Private → ts/Private}/extension/AgoraMediaPlayerTypesExtension.d.ts +0 -0
  361. /package/types/{Private → ts/Private}/extension/IAgoraH265TranscoderExtension.d.ts +0 -0
  362. /package/types/{Private → ts/Private}/extension/IAgoraLogExtension.d.ts +0 -0
  363. /package/types/{Private → ts/Private}/extension/IAgoraMediaEngineExtension.d.ts +0 -0
  364. /package/types/{Private → ts/Private}/extension/IAgoraMediaPlayerExtension.d.ts +0 -0
  365. /package/types/{Private → ts/Private}/extension/IAgoraMediaPlayerSourceExtension.d.ts +0 -0
  366. /package/types/{Private → ts/Private}/extension/IAgoraMediaRecorderExtension.d.ts +0 -0
  367. /package/types/{Private → ts/Private}/extension/IAgoraMusicContentCenterExtension.d.ts +0 -0
  368. /package/types/{Private → ts/Private}/extension/IAgoraRhythmPlayerExtension.d.ts +0 -0
  369. /package/types/{Private → ts/Private}/extension/IAgoraRtcEngineExExtension.d.ts +0 -0
  370. /package/types/{Private → ts/Private}/extension/IAgoraRtcEngineExtension.d.ts +0 -0
  371. /package/types/{Private → ts/Private}/extension/IAgoraSpatialAudioExtension.d.ts +0 -0
  372. /package/types/{Private → ts/Private}/extension/IAudioDeviceManagerExtension.d.ts +0 -0
  373. /package/types/{Private → ts/Private}/impl/AgoraBaseImpl.d.ts +0 -0
  374. /package/types/{Private → ts/Private}/impl/AgoraMediaBaseImpl.d.ts +0 -0
  375. /package/types/{Private → ts/Private}/impl/IAgoraH265TranscoderImpl.d.ts +0 -0
  376. /package/types/{Private → ts/Private}/impl/IAgoraMediaEngineImpl.d.ts +0 -0
  377. /package/types/{Private → ts/Private}/impl/IAgoraMediaPlayerSourceImpl.d.ts +0 -0
  378. /package/types/{Private → ts/Private}/impl/IAgoraMediaRecorderImpl.d.ts +0 -0
  379. /package/types/{Private → ts/Private}/impl/IAgoraMusicContentCenterImpl.d.ts +0 -0
  380. /package/types/{Private → ts/Private}/impl/IAgoraSpatialAudioImpl.d.ts +0 -0
  381. /package/types/{Private → ts/Private}/impl/IAudioDeviceManagerImpl.d.ts +0 -0
  382. /package/types/{Private → ts/Private}/internal/AgoraH265TranscoderInternal.d.ts +0 -0
  383. /package/types/{Private → ts/Private}/internal/AgoraMediaBaseInternal.d.ts +0 -0
  384. /package/types/{Private → ts/Private}/internal/AudioDeviceManagerInternal.d.ts +0 -0
  385. /package/types/{Private → ts/Private}/internal/IrisApiEngine.d.ts +0 -0
  386. /package/types/{Private → ts/Private}/internal/LocalSpatialAudioEngineInternal.d.ts +0 -0
  387. /package/types/{Private → ts/Private}/internal/MediaEngineInternal.d.ts +0 -0
  388. /package/types/{Private → ts/Private}/internal/MediaPlayerInternal.d.ts +0 -0
  389. /package/types/{Private → ts/Private}/internal/MediaRecorderInternal.d.ts +0 -0
  390. /package/types/{Private → ts/Private}/internal/MusicContentCenterInternal.d.ts +0 -0
  391. /package/types/{Private → ts/Private}/ipc/main.d.ts +0 -0
  392. /package/types/{Private → ts/Private}/ipc/renderer.d.ts +0 -0
  393. /package/types/{Private → ts/Private}/ti/AgoraBase-ti.d.ts +0 -0
  394. /package/types/{Private → ts/Private}/ti/AgoraMediaBase-ti.d.ts +0 -0
  395. /package/types/{Private → ts/Private}/ti/AgoraMediaPlayerTypes-ti.d.ts +0 -0
  396. /package/types/{Private → ts/Private}/ti/IAgoraH265Transcoder-ti.d.ts +0 -0
  397. /package/types/{Private → ts/Private}/ti/IAgoraLog-ti.d.ts +0 -0
  398. /package/types/{Private → ts/Private}/ti/IAgoraMediaEngine-ti.d.ts +0 -0
  399. /package/types/{Private → ts/Private}/ti/IAgoraMediaPlayer-ti.d.ts +0 -0
  400. /package/types/{Private → ts/Private}/ti/IAgoraMediaPlayerSource-ti.d.ts +0 -0
  401. /package/types/{Private → ts/Private}/ti/IAgoraMediaRecorder-ti.d.ts +0 -0
  402. /package/types/{Private → ts/Private}/ti/IAgoraMediaStreamingSource-ti.d.ts +0 -0
  403. /package/types/{Private → ts/Private}/ti/IAgoraMusicContentCenter-ti.d.ts +0 -0
  404. /package/types/{Private → ts/Private}/ti/IAgoraRhythmPlayer-ti.d.ts +0 -0
  405. /package/types/{Private → ts/Private}/ti/IAgoraRtcEngine-ti.d.ts +0 -0
  406. /package/types/{Private → ts/Private}/ti/IAgoraRtcEngineEx-ti.d.ts +0 -0
  407. /package/types/{Private → ts/Private}/ti/IAgoraSpatialAudio-ti.d.ts +0 -0
  408. /package/types/{Private → ts/Private}/ti/IAudioDeviceManager-ti.d.ts +0 -0
  409. /package/types/{Renderer → ts/Renderer}/CapabilityManager.d.ts +0 -0
  410. /package/types/{Renderer → ts/Renderer}/WebGLRenderer/webgl-utils.d.ts +0 -0
  411. /package/types/{Renderer → ts/Renderer}/index.d.ts +0 -0
@@ -0,0 +1,817 @@
1
+ import './extension/IAgoraRtcEngineExExtension';
2
+ import { ChannelMediaRelayConfiguration, ConnectionStateType, DataStreamConfig, EncryptionConfig, LiveTranscoding, SimulcastConfig, SimulcastStreamConfig, SimulcastStreamMode, SpatialAudioParams, UserInfo, VideoCanvas, VideoEncoderConfiguration, VideoMirrorModeType, VideoStreamType, VideoSubscriptionOptions, WatermarkOptions } from './AgoraBase';
3
+ import { ContentInspectConfig, RenderModeType, SnapshotConfig } from './AgoraMediaBase';
4
+ import { ChannelMediaOptions, IRtcEngine, ImageTrackOptions, LeaveChannelOptions, StreamFallbackOptions } from './IAgoraRtcEngine';
5
+ /**
6
+ * Class containing connection information.
7
+ */
8
+ export declare class RtcConnection {
9
+ /**
10
+ * Channel name.
11
+ */
12
+ channelId?: string;
13
+ /**
14
+ * Local user ID.
15
+ */
16
+ localUid?: number;
17
+ }
18
+ /**
19
+ * Interface class that provides multi-channel methods.
20
+ *
21
+ * Inherits from IRtcEngine.
22
+ */
23
+ export declare abstract class IRtcEngineEx extends IRtcEngine {
24
+ /**
25
+ * Joins a channel.
26
+ *
27
+ * Call this method to join multiple channels simultaneously. If you want to join the same channel on different devices, make sure the user IDs used on different devices are different. If you are already in a channel, you cannot join the same channel again with the same user ID.
28
+ * Before joining a channel, make sure the App ID used to generate the Token is the same as the one used to initialize the engine with the initialize method. Otherwise, joining the channel with the Token will fail.
29
+ *
30
+ * @param token A dynamic key generated on the server for authentication. See [Token Authentication](https://docs.agora.io/en/video-calling/token-authentication/deploy-token-server).
31
+ * (Recommended) If your project enables security mode (i.e., using APP ID + Token for authentication), this parameter is required.
32
+ * If your project only enables debug mode (i.e., using APP ID for authentication), you can join a channel without providing a Token. You will automatically leave the channel 24 hours after joining.
33
+ * If you need to join multiple channels simultaneously or switch channels frequently, Agora recommends using a wildcard Token to avoid requesting a new Token from the server each time. See [Using Wildcard Token](https://docs.agora.io/en/video-calling/token-authentication/deploy-token-server).
34
+ * @param connection Connection information. See RtcConnection.
35
+ * @param options Channel media options. See ChannelMediaOptions.
36
+ *
37
+ * @returns
38
+ * 0: Success.
39
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
40
+ * -2: Invalid parameters. For example, invalid Token, uid is not an integer, or ChannelMediaOptions contains invalid values. Provide valid parameters and rejoin the channel.
41
+ * -3: IRtcEngine initialization failed. Reinitialize the IRtcEngine object.
42
+ * -7: IRtcEngine is not initialized. Initialize the IRtcEngine object before calling this method.
43
+ * -8: Internal state error in IRtcEngine. Possible cause: startEchoTest was called to start echo test but stopEchoTest was not called before joining the channel. Call stopEchoTest before this method.
44
+ * -17: Join channel rejected. Possible cause: the user is already in the channel. Use onConnectionStateChanged to check the connection state. Do not call this method again unless you receive ConnectionStateDisconnected (1).
45
+ * -102: Invalid channel name. Provide a valid channelId and rejoin the channel.
46
+ * -121: Invalid user ID. Provide a valid uid and rejoin the channel.
47
+ */
48
+ abstract joinChannelEx(token: string, connection: RtcConnection, options: ChannelMediaOptions): number;
49
+ /**
50
+ * Sets channel options and leaves the channel.
51
+ *
52
+ * After calling this method, the SDK stops all audio and video interactions, leaves the current channel, and releases all session-related resources.
53
+ * After successfully joining a channel using joinChannelEx, you must call this method to end the call, otherwise you cannot start a new one.
54
+ * This method is asynchronous. When the call returns, it does not mean the user has actually left the channel.
55
+ * If you call leaveChannel, it will leave both channels joined via joinChannel and joinChannelEx. If you call release immediately after this method, the SDK will not trigger the onLeaveChannel callback.
56
+ *
57
+ * @param connection Connection information. See RtcConnection.
58
+ * @param options Options for leaving the channel. See LeaveChannelOptions. This parameter only supports setting the stopMicrophoneRecording member in LeaveChannelOptions. Other members are not effective.
59
+ *
60
+ * @returns
61
+ * 0: The method call succeeds.
62
+ * < 0: The method call fails. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
63
+ */
64
+ abstract leaveChannelEx(connection: RtcConnection, options?: LeaveChannelOptions): number;
65
+ /**
66
+ * @ignore
67
+ */
68
+ abstract leaveChannelWithUserAccountEx(channelId: string, userAccount: string, options?: LeaveChannelOptions): number;
69
+ /**
70
+ * Updates channel media options after joining the channel.
71
+ *
72
+ * @param options Channel media options. See ChannelMediaOptions.
73
+ * @param connection Connection information. See RtcConnection.
74
+ *
75
+ * @returns
76
+ * 0: The method call succeeds.
77
+ * < 0: The method call fails. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
78
+ * -2: Invalid ChannelMediaOptions values. For example, using an invalid token or setting an invalid user role. You must provide valid parameters.
79
+ * -7: The IRtcEngine object is not initialized. You must initialize the IRtcEngine object before calling this method.
80
+ * -8: The internal state of the IRtcEngine object is incorrect. This may happen if the user is not in a channel. Use the onConnectionStateChanged callback to determine whether the user is in a channel. If you receive ConnectionStateDisconnected (1) or ConnectionStateFailed (5), the user is not in a channel. You must call joinChannel before using this method.
81
+ */
82
+ abstract updateChannelMediaOptionsEx(options: ChannelMediaOptions, connection: RtcConnection): number;
83
+ /**
84
+ * Sets the video encoding configuration.
85
+ *
86
+ * Sets the encoding configuration for the local video. Each video encoding configuration corresponds to a set of video parameters, including resolution, frame rate, and bitrate. The config parameter of this method specifies the maximum values achievable under ideal network conditions. If the network condition is poor, the video engine may not use this config to render the local video and will automatically downgrade to a suitable video parameter configuration.
87
+ *
88
+ * @param config Video encoding configuration. See VideoEncoderConfiguration.
89
+ * @param connection Connection information. See RtcConnection.
90
+ *
91
+ * @returns
92
+ * 0: The method call succeeds.
93
+ * < 0: The method call fails. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting tips.
94
+ */
95
+ abstract setVideoEncoderConfigurationEx(config: VideoEncoderConfiguration, connection: RtcConnection): number;
96
+ /**
97
+ * Initializes the remote user view.
98
+ *
99
+ * This method binds a remote user to a display view and sets the rendering and mirror mode for the remote user's view as seen locally. It only affects the video display seen by the local user.
100
+ * You need to specify the remote user's ID in VideoCanvas when calling this method. It is generally recommended to set this before joining the channel.
101
+ * If the remote user's uid is not available before joining the channel, you can call this method upon receiving the onUserJoined callback. If video recording is enabled, the recording service joins the channel as a dummy client. Other clients will also receive its onUserJoined event, but the app should not bind a view to it (as it does not send video streams).
102
+ * To unbind a view from a remote user, call this method and set view to null.
103
+ * After leaving the channel, the SDK clears the binding between the remote user and the view.
104
+ * You must call this method after joinChannelEx.
105
+ * In Flutter, you do not need to call this method manually. Use AgoraVideoView to render local and remote views.
106
+ * If you want to update the rendering or mirror mode of the remote user's view during a call, use the setRemoteRenderModeEx method.
107
+ *
108
+ * @param canvas Video canvas information. See VideoCanvas.
109
+ * @param connection Connection information. See RtcConnection.
110
+ *
111
+ * @returns
112
+ * 0: Success.
113
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
114
+ */
115
+ abstract setupRemoteVideoEx(canvas: VideoCanvas, connection: RtcConnection): number;
116
+ /**
117
+ * Stops or resumes receiving the specified audio stream.
118
+ *
119
+ * This method stops or resumes receiving the audio stream from a specified remote user. You can call this method before or after joining a channel. The setting is reset after leaving the channel.
120
+ *
121
+ * @param uid The ID of the specified user.
122
+ * @param mute Whether to stop receiving the specified audio stream: true : Stop receiving the specified audio stream. false : (Default) Continue receiving the specified audio stream.
123
+ * @param connection Connection information. See RtcConnection.
124
+ *
125
+ * @returns
126
+ * 0: Success.
127
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
128
+ */
129
+ abstract muteRemoteAudioStreamEx(uid: number, mute: boolean, connection: RtcConnection): number;
130
+ /**
131
+ * Stops or resumes receiving the specified video stream.
132
+ *
133
+ * This method stops or resumes receiving the video stream from a specified remote user. You can call this method before or after joining a channel. The setting is reset after leaving the channel.
134
+ *
135
+ * @param uid The ID of the remote user.
136
+ * @param mute Whether to stop receiving the video stream from a remote user: true : Stop receiving. false : (Default) Resume receiving.
137
+ * @param connection Connection information. See RtcConnection.
138
+ *
139
+ * @returns
140
+ * 0: Success.
141
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
142
+ */
143
+ abstract muteRemoteVideoStreamEx(uid: number, mute: boolean, connection: RtcConnection): number;
144
+ /**
145
+ * Sets the video stream type to subscribe to.
146
+ *
147
+ * Depending on the sender's default behavior and the configuration of setDualStreamMode, the receiver's use of this method falls into the following cases:
148
+ * By default, the SDK enables the adaptive low stream mode (AutoSimulcastStream) on the sender side. That is, the sender only sends the high stream. Only receivers with host role can call this method to request the low stream. Once the sender receives the request, it starts sending the low stream automatically. At this point, all users in the channel can call this method to switch to low stream subscription mode.
149
+ * If the sender calls setDualStreamMode and sets mode to DisableSimulcastStream (never send low stream), then this method has no effect.
150
+ * If the sender calls setDualStreamMode and sets mode to EnableSimulcastStream (always send low stream), then both host and audience receivers can call this method to switch to low stream subscription mode. When receiving low video streams, the SDK dynamically adjusts the video stream size based on the size of the video window to save bandwidth and computing resources. The aspect ratio of the low stream is the same as that of the high stream. Based on the current aspect ratio of the high stream, the system automatically allocates resolution, frame rate, and bitrate for the low stream. If the sender has called setDualStreamModeEx and set mode to DisableSimulcastStream (never send low stream), then this method has no effect. You need to call setDualStreamModeEx again on the sender side to change the setting.
151
+ *
152
+ * @param uid User ID.
153
+ * @param streamType Video stream type: VideoStreamType.
154
+ * @param connection Connection information. See RtcConnection.
155
+ *
156
+ * @returns
157
+ * 0: The method call succeeds.
158
+ * < 0: The method call fails. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
159
+ */
160
+ abstract setRemoteVideoStreamTypeEx(uid: number, streamType: VideoStreamType, connection: RtcConnection): number;
161
+ /**
162
+ * Stops or resumes publishing the local audio stream.
163
+ *
164
+ * After this method is successfully called, the remote client triggers the onUserMuteAudio and onRemoteAudioStateChanged callbacks. This method does not affect the audio capture state because the audio capture device is not disabled.
165
+ *
166
+ * @param mute Whether to stop publishing the local audio stream. true : Stop publishing. false : (Default) Publish.
167
+ * @param connection Connection information. See RtcConnection.
168
+ *
169
+ * @returns
170
+ * 0: Success.
171
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
172
+ */
173
+ abstract muteLocalAudioStreamEx(mute: boolean, connection: RtcConnection): number;
174
+ /**
175
+ * Stops or resumes publishing the local video stream.
176
+ *
177
+ * After this method is successfully called, the remote user receives the onUserMuteVideo callback.
178
+ * This method does not affect the video capture state and does not disable the camera.
179
+ *
180
+ * @param mute Whether to stop sending the local video stream. true : Stop sending the local video stream. false : (Default) Send the local video stream.
181
+ * @param connection Connection information. See RtcConnection.
182
+ *
183
+ * @returns
184
+ * 0: Success.
185
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
186
+ */
187
+ abstract muteLocalVideoStreamEx(mute: boolean, connection: RtcConnection): number;
188
+ /**
189
+ * Stops or resumes subscribing to all remote users' audio streams.
190
+ *
191
+ * After this method is successfully called, the local user stops or resumes subscribing to remote users' audio streams, including the streams of users who join the channel after this method is called.
192
+ * This method must be called after joining a channel.
193
+ * To disable subscribing to remote users' audio streams before joining a channel, set autoSubscribeAudio to false when calling joinChannel.
194
+ *
195
+ * @param mute Whether to stop subscribing to all remote users' audio streams: true : Stop subscribing to all remote users' audio streams. false : (Default) Subscribe to all remote users' audio streams.
196
+ * @param connection Connection information. See RtcConnection.
197
+ *
198
+ * @returns
199
+ * 0: Success.
200
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
201
+ */
202
+ abstract muteAllRemoteAudioStreamsEx(mute: boolean, connection: RtcConnection): number;
203
+ /**
204
+ * Stops or resumes subscribing to all remote users' video streams.
205
+ *
206
+ * After this method is successfully called, the local user stops or resumes subscribing to all remote users' video streams, including the streams of users who join the channel after this method is called.
207
+ *
208
+ * @param mute Whether to stop subscribing to all remote users' video streams. true : Stop subscribing to all users' video streams. false : (Default) Subscribe to all users' video streams.
209
+ * @param connection Connection information. See RtcConnection.
210
+ *
211
+ * @returns
212
+ * 0: Success.
213
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
214
+ */
215
+ abstract muteAllRemoteVideoStreamsEx(mute: boolean, connection: RtcConnection): number;
216
+ /**
217
+ * Sets the audio subscription blocklist.
218
+ *
219
+ * You can call this method to specify the audio streams you do not want to subscribe to.
220
+ * This method can be called before or after joining a channel.
221
+ * The audio subscription blocklist is not affected by muteRemoteAudioStream, muteAllRemoteAudioStreams, or autoSubscribeAudio in ChannelMediaOptions.
222
+ * After setting the blocklist, if you leave and rejoin the channel, the blocklist remains effective.
223
+ * If a user is in both the audio subscription blocklist and allowlist, only the blocklist takes effect.
224
+ *
225
+ * @param uidList List of user IDs in the audio subscription blocklist.
226
+ * If you want to block the audio stream of a specific user, add that user's ID to this list. If you want to remove a user from the blocklist, call setSubscribeAudioBlocklist again with an updated list that excludes the user's uid.
227
+ * @param uidNumber Number of users in the blocklist.
228
+ * @param connection Connection information. See RtcConnection.
229
+ *
230
+ * @returns
231
+ * 0: Success.
232
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
233
+ */
234
+ abstract setSubscribeAudioBlocklistEx(uidList: number[], uidNumber: number, connection: RtcConnection): number;
235
+ /**
236
+ * Sets the audio subscription allowlist.
237
+ *
238
+ * You can call this method to specify the audio streams you want to subscribe to.
239
+ * This method can be called before or after joining a channel.
240
+ * The audio subscription allowlist is not affected by muteRemoteAudioStream, muteAllRemoteAudioStreams, or autoSubscribeAudio in ChannelMediaOptions.
241
+ * After setting the allowlist, if you leave and rejoin the channel, the allowlist remains effective.
242
+ * If a user is in both the audio subscription blocklist and allowlist, only the blocklist takes effect.
243
+ *
244
+ * @param uidList List of user IDs in the audio subscription allowlist.
245
+ * If you want to subscribe to the audio stream of a specific user, add that user's ID to this list. If you want to remove a user from the allowlist, call setSubscribeAudioAllowlist again with an updated list that excludes the user's uid.
246
+ * @param uidNumber Number of users in the allowlist.
247
+ * @param connection Connection information. See RtcConnection.
248
+ *
249
+ * @returns
250
+ * 0: Success.
251
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
252
+ */
253
+ abstract setSubscribeAudioAllowlistEx(uidList: number[], uidNumber: number, connection: RtcConnection): number;
254
+ /**
255
+ * Sets the video subscription blocklist.
256
+ *
257
+ * You can call this method to specify the video streams you do not want to subscribe to.
258
+ * You can call this method either before or after joining a channel.
259
+ * The video subscription blocklist is not affected by muteRemoteVideoStream, muteAllRemoteVideoStreams, or autoSubscribeVideo in ChannelMediaOptions.
260
+ * After setting the blocklist, it remains effective even if you leave and rejoin the channel.
261
+ * If a user is in both the audio subscription allowlist and blocklist, only the blocklist takes effect.
262
+ *
263
+ * @param uidList The user ID list for the video subscription blocklist.
264
+ * If you want to block the video stream from a specific user, add that user's ID to this list. If you want to remove a user from the blocklist, you need to call the setSubscribeVideoBlocklist method again to update the list so that it no longer includes the uid of the user you want to remove.
265
+ * @param uidNumber The number of users in the blocklist.
266
+ * @param connection Connection information. See RtcConnection.
267
+ *
268
+ * @returns
269
+ * 0: Success.
270
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
271
+ */
272
+ abstract setSubscribeVideoBlocklistEx(uidList: number[], uidNumber: number, connection: RtcConnection): number;
273
+ /**
274
+ * Sets the video subscription allowlist.
275
+ *
276
+ * You can call this method to specify the video streams you want to subscribe to.
277
+ * You can call this method either before or after joining a channel.
278
+ * The video subscription allowlist is not affected by muteRemoteVideoStream, muteAllRemoteVideoStreams, or autoSubscribeVideo in ChannelMediaOptions.
279
+ * After setting the allowlist, it remains effective even if you leave and rejoin the channel.
280
+ * If a user is in both the audio subscription allowlist and blocklist, only the blocklist takes effect.
281
+ *
282
+ * @param uidList The user ID list for the video subscription allowlist.
283
+ * If you want to subscribe to the video stream of a specific user, add that user's ID to this list. If you want to remove a user from the allowlist, you need to call the setSubscribeVideoAllowlist method again to update the list so that it no longer includes the uid of the user you want to remove.
284
+ * @param uidNumber The number of users in the allowlist.
285
+ * @param connection Connection information. See RtcConnection.
286
+ *
287
+ * @returns
288
+ * 0: Success.
289
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
290
+ */
291
+ abstract setSubscribeVideoAllowlistEx(uidList: number[], uidNumber: number, connection: RtcConnection): number;
292
+ /**
293
+ * Sets the subscription options for the remote video stream.
294
+ *
295
+ * When the remote user sends dual streams, you can call this method to set the subscription options for the remote video stream.
296
+ *
297
+ * @param uid Remote user ID.
298
+ * @param options Subscription settings for the video stream. See VideoSubscriptionOptions.
299
+ * @param connection Connection information. See RtcConnection.
300
+ *
301
+ * @returns
302
+ * 0: Success.
303
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
304
+ */
305
+ abstract setRemoteVideoSubscriptionOptionsEx(uid: number, options: VideoSubscriptionOptions, connection: RtcConnection): number;
306
+ /**
307
+ * Sets the 2D position of a remote user's voice, that is, the horizontal position.
308
+ *
309
+ * Sets the spatial position and volume of a remote user's voice to help the local user determine the direction of the sound.
310
+ * By calling this method to set the position where the remote user's voice appears, the difference in sound between the left and right channels creates a sense of direction, allowing the user to determine the remote user's real-time position. In multiplayer online games, such as battle royale games, this method can effectively enhance the directional perception of game characters and simulate realistic scenarios.
311
+ * For the best listening experience, it is recommended that users wear wired headphones.
312
+ * This method must be called after joining the channel.
313
+ *
314
+ * @param uid The ID of the remote user.
315
+ * @param pan Sets the spatial position of the remote user's voice. The range is [-1.0, 1.0]:
316
+ * -1.0: The sound appears on the left.
317
+ * (Default) 0.0: The sound appears in the center.
318
+ * 1.0: The sound appears on the right.
319
+ * @param gain Sets the volume of the remote user's voice. The range is [0.0, 100.0], and the default is 100.0, which represents the user's original volume. The smaller the value, the lower the volume.
320
+ * @param connection Connection information. See RtcConnection.
321
+ *
322
+ * @returns
323
+ * 0: Success.
324
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
325
+ */
326
+ abstract setRemoteVoicePositionEx(uid: number, pan: number, gain: number, connection: RtcConnection): number;
327
+ /**
328
+ * @ignore
329
+ */
330
+ abstract setRemoteUserSpatialAudioParamsEx(uid: number, params: SpatialAudioParams, connection: RtcConnection): number;
331
+ /**
332
+ * Sets the display mode of the remote view.
333
+ *
334
+ * After initializing the remote user view, you can call this method to update the rendering and mirror mode of the remote user view as displayed locally. This method only affects the video seen by the local user.
335
+ *
336
+ * @param uid Remote user ID.
337
+ * @param renderMode Display mode of the remote view. See RenderModeType.
338
+ * @param mirrorMode The mirror mode of the remote user view. See VideoMirrorModeType.
339
+ * @param connection Connection information. See RtcConnection.
340
+ *
341
+ * @returns
342
+ * 0: Success.
343
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
344
+ */
345
+ abstract setRemoteRenderModeEx(uid: number, renderMode: RenderModeType, mirrorMode: VideoMirrorModeType, connection: RtcConnection): number;
346
+ /**
347
+ * Enables loopback recording.
348
+ *
349
+ * After enabling loopback recording, the sound played by the sound card will be mixed into the local audio stream and can be sent to the remote side.
350
+ * The default sound card on macOS does not support recording. If you need to use this feature, please enable a virtual sound card and set deviceName to the name of that virtual sound card. Agora recommends using its self-developed virtual sound card AgoraALD for recording.
351
+ * This method currently supports only one loopback recording stream.
352
+ *
353
+ * @param connection Connection information. See RtcConnection.
354
+ * @param enabled Whether to enable loopback recording: true : Enable loopback recording. false : (Default) Disable loopback recording.
355
+ * @param deviceName Electron for UnionTech OS SDK does not support this parameter.
356
+ * macOS: The device name of the virtual sound card. Default is empty, which means using the AgoraALD virtual sound card for recording.
357
+ * Windows: The device name of the sound card. Default is empty, which means using the built-in sound card of the device.
358
+ *
359
+ * @returns
360
+ * 0: Success.
361
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
362
+ */
363
+ abstract enableLoopbackRecordingEx(connection: RtcConnection, enabled: boolean, deviceName?: string): number;
364
+ /**
365
+ * @ignore
366
+ */
367
+ abstract adjustRecordingSignalVolumeEx(volume: number, connection: RtcConnection): number;
368
+ /**
369
+ * @ignore
370
+ */
371
+ abstract muteRecordingSignalEx(mute: boolean, connection: RtcConnection): number;
372
+ /**
373
+ * Adjusts the playback volume of a specified remote user.
374
+ *
375
+ * You can call this method during a call to adjust the playback volume of a specified remote user. To adjust the playback volume of multiple users, call this method multiple times.
376
+ *
377
+ * @param uid The ID of the remote user.
378
+ * @param volume The volume, with a range of [0,400].
379
+ * 0: Mute.
380
+ * 100: (Default) Original volume.
381
+ * 400: Four times the original volume, with overflow protection.
382
+ * @param connection Connection information. See RtcConnection.
383
+ *
384
+ * @returns
385
+ * 0: Success.
386
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
387
+ */
388
+ abstract adjustUserPlaybackSignalVolumeEx(uid: number, volume: number, connection: RtcConnection): number;
389
+ /**
390
+ * Gets the current network connection state.
391
+ *
392
+ * @param connection Connection information. See RtcConnection.
393
+ *
394
+ * @returns
395
+ * The current network connection state. See ConnectionStateType.
396
+ */
397
+ abstract getConnectionStateEx(connection: RtcConnection): ConnectionStateType;
398
+ /**
399
+ * Enables or disables built-in encryption.
400
+ *
401
+ * The SDK automatically disables encryption after the user leaves the channel. To re-enable encryption, you must call this method before the user joins the channel again.
402
+ * All users in the same channel must use the same encryption mode and key when calling this method.
403
+ * If built-in encryption is enabled, the RTMP streaming feature cannot be used.
404
+ *
405
+ * @param connection Connection information. See RtcConnection.
406
+ * @param enabled Whether to enable built-in encryption: true : Enable built-in encryption. false : (Default) Disable built-in encryption.
407
+ * @param config Configure the built-in encryption mode and key. See EncryptionConfig.
408
+ *
409
+ * @returns
410
+ * 0: Success.
411
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
412
+ */
413
+ abstract enableEncryptionEx(connection: RtcConnection, enabled: boolean, config: EncryptionConfig): number;
414
+ /**
415
+ * Creates a data stream.
416
+ *
417
+ * Within the lifecycle of IRtcEngine, each user can create up to 5 data streams. The data streams are destroyed when leaving the channel. To use them again, you need to recreate them.
418
+ *
419
+ * @param config Data stream configuration. See DataStreamConfig.
420
+ * @param connection Connection information. See RtcConnection.
421
+ *
422
+ * @returns
423
+ * ID of the created data stream: if the method call succeeds.
424
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
425
+ */
426
+ abstract createDataStreamEx(config: DataStreamConfig, connection: RtcConnection): number;
427
+ /**
428
+ * Sends a data stream.
429
+ *
430
+ * After calling createDataStreamEx, you can use this method to send data stream messages to all users in the channel.
431
+ * The SDK imposes the following restrictions on this method:
432
+ * Each client in the channel can have up to 5 data channels simultaneously, and the total sending bitrate shared by all data channels is limited to 30 KB/s.
433
+ * Each data channel can send up to 60 packets per second, with each packet up to 1 KB in size. If the method call succeeds, the remote end triggers the onStreamMessage callback, where the remote user can receive the message; if it fails, the remote end triggers the onStreamMessageError callback.
434
+ * This method must be called after joinChannelEx.
435
+ * Make sure to call createDataStreamEx to create the data channel before calling this method.
436
+ *
437
+ * @param streamId Data stream ID. You can get it via createDataStreamEx.
438
+ * @param data The data to be sent.
439
+ * @param length Length of the data.
440
+ * @param connection Connection information. See RtcConnection.
441
+ *
442
+ * @returns
443
+ * 0: Success.
444
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
445
+ */
446
+ abstract sendStreamMessageEx(streamId: number, data: Uint8Array, length: number, connection: RtcConnection): number;
447
+ /**
448
+ * Adds a local video watermark.
449
+ *
450
+ * Deprecated Deprecated: This method is deprecated. Use addVideoWatermarkWithConfigEx instead. This method adds a PNG image as a watermark to the local live video stream. Users in the same live streaming channel, audience of the CDN live stream, and capture devices can see or capture the watermark image. Currently, only one watermark can be added to the live stream. A newly added watermark replaces the previous one.
451
+ * The watermark coordinates depend on the settings in the setVideoEncoderConfigurationEx method:
452
+ * If the video orientation (OrientationMode) is fixed to landscape or adaptive landscape, landscape coordinates are used for the watermark.
453
+ * If the video orientation (OrientationMode) is fixed to portrait or adaptive portrait, portrait coordinates are used for the watermark.
454
+ * When setting the watermark coordinates, the image area of the watermark must not exceed the video dimensions set in the setVideoEncoderConfigurationEx method; otherwise, the excess part will be cropped.
455
+ * You must call this method after calling enableVideo.
456
+ * The image to be added must be in PNG format. This method supports all pixel formats of PNG images: RGBA, RGB, Palette, Gray, and Alpha_gray.
457
+ * If the size of the PNG image differs from the size you set in this method, the SDK will scale or crop the image to match the settings.
458
+ * If you have started the local video preview using startPreview, you can use the visibleInPreview parameter to set whether the watermark is visible during preview.
459
+ * If local video mirroring is enabled, the local watermark will also be mirrored. To prevent the watermark from being mirrored when viewed locally, we recommend not using both mirroring and watermark features simultaneously. Implement local watermarking at the application level.
460
+ *
461
+ * @param watermarkUrl The local path of the watermark image to be added. This method supports adding watermark images from absolute or relative local paths.
462
+ * @param options Settings for the watermark image to be added. See WatermarkOptions.
463
+ * @param connection Connection information. See RtcConnection.
464
+ *
465
+ * @returns
466
+ * 0: Success.
467
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
468
+ */
469
+ abstract addVideoWatermarkEx(watermarkUrl: string, options: WatermarkOptions, connection: RtcConnection): number;
470
+ /**
471
+ * Removes added video watermarks.
472
+ *
473
+ * @param connection Connection information. See RtcConnection.
474
+ *
475
+ * @returns
476
+ * 0: Success.
477
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
478
+ */
479
+ abstract clearVideoWatermarkEx(connection: RtcConnection): number;
480
+ /**
481
+ * Custom data reporting and analysis service.
482
+ *
483
+ * Agora provides custom data reporting and analysis services. This service is currently in a free beta phase. During the beta, you can report up to 10 data entries within 6 seconds. Each custom data entry must not exceed 256 bytes, and each string must not exceed 100 bytes. To try this service, [contact sales](mailto:support@agora.io) to enable it and agree on the custom data format.
484
+ */
485
+ abstract sendCustomReportMessageEx(id: string, category: string, event: string, label: string, value: number, connection: RtcConnection): number;
486
+ /**
487
+ * Enables audio volume indication.
488
+ *
489
+ * This method allows the SDK to periodically report to the app the volume information of the local user who is sending streams and the remote users (up to 3) with the highest instantaneous volume.
490
+ *
491
+ * @param interval The time interval for the volume indication:
492
+ * ≤ 0: Disables the volume indication feature.
493
+ * > 0: Returns the interval for volume indication, in milliseconds. It is recommended to set it above 100 ms. Must not be less than 10 ms, otherwise the onAudioVolumeIndication callback will not be received.
494
+ * @param smooth The smoothing factor that specifies the sensitivity of the volume indication. The range is [0,10], and the recommended value is 3. The larger the value, the more sensitive the fluctuation; the smaller the value, the smoother the fluctuation.
495
+ * @param reportVad true : Enables the local voice detection feature. When enabled, the vad parameter in the onAudioVolumeIndication callback reports whether a human voice is detected locally. false : (Default) Disables the local voice detection feature. Except in scenarios where the engine automatically performs local voice detection, the vad parameter in the onAudioVolumeIndication callback does not report whether a human voice is detected locally.
496
+ * @param connection Connection information. See RtcConnection.
497
+ *
498
+ * @returns
499
+ * 0: Success.
500
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
501
+ */
502
+ abstract enableAudioVolumeIndicationEx(interval: number, smooth: number, reportVad: boolean, connection: RtcConnection): number;
503
+ /**
504
+ * Starts pushing media streams without transcoding.
505
+ *
506
+ * Agora recommends using the more advanced server-side streaming feature. See [Implement Server-side Streaming](https://docs.agora.io/en/media-push/get-started/enable-media-push).
507
+ * Call this method to push live audio and video streams to a specified streaming URL. This method supports pushing to only one URL at a time. To push to multiple URLs, call this method multiple times.
508
+ * After calling this method, the SDK triggers the onRtmpStreamingStateChanged callback locally to report the streaming status.
509
+ * Call this method after joining a channel.
510
+ * Only broadcasters in a live streaming scenario can call this method.
511
+ * If the streaming fails and you want to retry, you must call stopRtmpStream before calling this method again. Otherwise, the SDK will return the same error code as the previous failure.
512
+ *
513
+ * @param url The streaming URL. Must be in RTMP or RTMPS format. The maximum length is 1024 bytes. Special characters such as Chinese characters are not supported.
514
+ * @param connection Connection information. See RtcConnection.
515
+ *
516
+ * @returns
517
+ * 0: Success.
518
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
519
+ * -2: The URL or transcoding parameter is incorrect. Check your URL or parameter settings.
520
+ * -7: The SDK is not initialized before calling this method.
521
+ * -19: The streaming URL is already in use. Use a different streaming URL.
522
+ */
523
+ abstract startRtmpStreamWithoutTranscodingEx(url: string, connection: RtcConnection): number;
524
+ /**
525
+ * Starts pushing streams to a CDN and sets the transcoding configuration.
526
+ *
527
+ * Agora recommends using the more comprehensive server-side streaming feature. See [Implement server-side CDN streaming](https://docs.agora.io/en/media-push/get-started/enable-media-push).
528
+ * Call this method to push live audio and video streams to the specified CDN streaming URL and set the transcoding configuration. This method can only push media streams to one URL at a time. To push to multiple URLs, call this method multiple times.
529
+ * After calling this method, the SDK triggers the onRtmpStreamingStateChanged callback locally to report the streaming status.
530
+ * Make sure the CDN streaming service is enabled.
531
+ * Call this method after joining a channel.
532
+ * Only hosts in a live streaming scenario can call this method.
533
+ * If the stream push fails and you want to retry, you must call stopRtmpStreamEx before calling this method again. Otherwise, the SDK returns the same error code as the previous failure.
534
+ *
535
+ * @param url The CDN streaming URL. Must be in RTMP or RTMPS format. The character length must not exceed 1024 bytes. Special characters such as Chinese characters are not supported.
536
+ * @param transcoding The transcoding configuration for the CDN stream. See LiveTranscoding.
537
+ * @param connection The connection information. See RtcConnection.
538
+ *
539
+ * @returns
540
+ * 0: The method call succeeds.
541
+ * < 0: The method call fails. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
542
+ * -2: The URL or transcoding parameter is invalid. Check your URL or parameter settings.
543
+ * -7: The SDK is not initialized before calling this method.
544
+ * -19: The CDN streaming URL is already in use. Use a different URL.
545
+ */
546
+ abstract startRtmpStreamWithTranscodingEx(url: string, transcoding: LiveTranscoding, connection: RtcConnection): number;
547
+ /**
548
+ * Updates the CDN transcoding configuration.
549
+ *
550
+ * Agora recommends using the more comprehensive server-side streaming feature. See [Implement server-side CDN streaming](https://docs.agora.io/en/media-push/get-started/enable-media-push).
551
+ * After enabling transcoding streaming, you can dynamically update the transcoding configuration based on your scenario. After the configuration is updated, the SDK triggers the onTranscodingUpdated callback.
552
+ *
553
+ * @param transcoding The transcoding configuration for the CDN stream. See LiveTranscoding.
554
+ * @param connection The connection information. See RtcConnection.
555
+ *
556
+ * @returns
557
+ * 0: The method call succeeds.
558
+ * < 0: The method call fails. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
559
+ */
560
+ abstract updateRtmpTranscodingEx(transcoding: LiveTranscoding, connection: RtcConnection): number;
561
+ /**
562
+ * Stops pushing streams to a CDN.
563
+ *
564
+ * Agora recommends using the more comprehensive server-side streaming feature. See [Implement server-side CDN streaming](https://docs.agora.io/en/media-push/get-started/enable-media-push).
565
+ * Call this method to stop the live stream on the specified CDN streaming URL. This method can only stop one URL at a time. To stop multiple URLs, call this method multiple times.
566
+ * After calling this method, the SDK triggers the onRtmpStreamingStateChanged callback locally to report the streaming status.
567
+ *
568
+ * @param url The CDN streaming URL. Must be in RTMP or RTMPS format. The character length must not exceed 1024 bytes. Special characters such as Chinese characters are not supported.
569
+ * @param connection The connection information. See RtcConnection.
570
+ *
571
+ * @returns
572
+ * 0: The method call succeeds.
573
+ * < 0: The method call fails. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
574
+ */
575
+ abstract stopRtmpStreamEx(url: string, connection: RtcConnection): number;
576
+ /**
577
+ * Starts or updates the media stream relay across channels.
578
+ *
579
+ * The first successful call to this method starts relaying media streams across channels. To relay streams to multiple destination channels or to leave a current relay channel, you can call this method again to add or remove destination channels. This feature supports relaying to up to six destination channels.
580
+ * After a successful call, the SDK triggers the onChannelMediaRelayStateChanged callback to report the current relay state. Common states include:
581
+ * If the onChannelMediaRelayStateChanged callback reports RelayStateRunning (2) and RelayOk (0), it means the SDK has started relaying media streams between the source and destination channels.
582
+ * If the callback reports RelayStateFailure (3), it indicates an error occurred during the media stream relay.
583
+ * Call this method after successfully joining a channel.
584
+ * In a live streaming scenario, only users with the broadcaster role can call this method.
585
+ * To enable the media stream relay across channels, [contact technical support](https://www.agora.io/cn/contact/).
586
+ * This feature does not support string-type UIDs.
587
+ *
588
+ * @param configuration Configuration for media stream relay across channels. See ChannelMediaRelayConfiguration.
589
+ * @param connection Connection information. See RtcConnection.
590
+ *
591
+ * @returns
592
+ * 0: Success.
593
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
594
+ * -1: General error (not categorized).
595
+ * -2: Invalid parameter.
596
+ * -8: Internal state error, possibly due to the user not being a broadcaster.
597
+ */
598
+ abstract startOrUpdateChannelMediaRelayEx(configuration: ChannelMediaRelayConfiguration, connection: RtcConnection): number;
599
+ /**
600
+ * Stops the media stream relay across channels. Once stopped, the broadcaster leaves all destination channels.
601
+ *
602
+ * After a successful call, the SDK triggers the onChannelMediaRelayStateChanged callback. If it reports RelayStateIdle (0) and RelayOk (0), it indicates that the media stream relay has stopped. If the method call fails, the SDK triggers the onChannelMediaRelayStateChanged callback and reports the error code RelayErrorServerNoResponse (2) or RelayErrorServerConnectionLost (8). You can call the leaveChannel method to leave the channel, and the media stream relay will stop automatically.
603
+ *
604
+ * @param connection Connection information. See RtcConnection.
605
+ *
606
+ * @returns
607
+ * 0: Success.
608
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
609
+ * -5: The method call is rejected. There is no ongoing media stream relay.
610
+ */
611
+ abstract stopChannelMediaRelayEx(connection: RtcConnection): number;
612
+ /**
613
+ * Pauses media stream forwarding to all destination channels.
614
+ *
615
+ * After starting media stream forwarding across channels, if you need to pause forwarding to all channels, you can call this method. To resume forwarding, call the resumeAllChannelMediaRelay method. You must call this method after calling startOrUpdateChannelMediaRelayEx to start cross-channel media stream forwarding.
616
+ *
617
+ * @param connection Connection information. See RtcConnection.
618
+ *
619
+ * @returns
620
+ * 0: The method call was successful.
621
+ * < 0: The method call failed. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
622
+ * -5: This method call was rejected. There is no ongoing cross-channel media stream forwarding.
623
+ */
624
+ abstract pauseAllChannelMediaRelayEx(connection: RtcConnection): number;
625
+ /**
626
+ * Resumes media stream forwarding to all destination channels.
627
+ *
628
+ * After calling the pauseAllChannelMediaRelayEx method, if you need to resume forwarding media streams to all destination channels, you can call this method. You must call this method after pauseAllChannelMediaRelayEx.
629
+ *
630
+ * @param connection Connection information. See RtcConnection.
631
+ *
632
+ * @returns
633
+ * 0: The method call was successful.
634
+ * < 0: The method call failed. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
635
+ * -5: This method call was rejected. There is no paused cross-channel media stream forwarding.
636
+ */
637
+ abstract resumeAllChannelMediaRelayEx(connection: RtcConnection): number;
638
+ /**
639
+ * @ignore
640
+ */
641
+ abstract getUserInfoByUserAccountEx(userAccount: string, connection: RtcConnection): UserInfo;
642
+ /**
643
+ * @ignore
644
+ */
645
+ abstract getUserInfoByUidEx(uid: number, connection: RtcConnection): UserInfo;
646
+ /**
647
+ * Enables or disables dual-stream mode on the sender.
648
+ *
649
+ * Deprecated Deprecated: Deprecated since v4.2.0. Use setDualStreamModeEx instead. You can call this method on the sending side to enable or disable dual-stream mode. Dual-stream refers to high-quality and low-quality video streams:
650
+ * High-quality stream: High resolution and high frame rate video stream.
651
+ * Low-quality stream: Low resolution and low frame rate video stream. After enabling dual-stream mode, you can call setRemoteVideoStreamType on the receiving side to choose whether to receive the high-quality or low-quality video stream. This method applies to all types of streams sent by the sender, including but not limited to camera-captured video streams, screen sharing streams, and custom captured video streams.
652
+ *
653
+ * @param enabled Whether to enable dual-stream mode: true : Enable dual-stream mode. false : (Default) Disable dual-stream mode.
654
+ * @param streamConfig Configuration of the low-quality video stream. See SimulcastStreamConfig. If mode is set to DisableSimulcastStream, then streamConfig will not take effect.
655
+ * @param connection Connection information. See RtcConnection.
656
+ *
657
+ * @returns
658
+ * 0: Success.
659
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
660
+ */
661
+ abstract enableDualStreamModeEx(enabled: boolean, streamConfig: SimulcastStreamConfig, connection: RtcConnection): number;
662
+ /**
663
+ * Sets the dual-stream mode on the sender side.
664
+ *
665
+ * By default, the SDK enables the adaptive low stream mode (AutoSimulcastStream) on the sender side. That is, the sender does not proactively send the low stream. A receiver with host role can call setRemoteVideoStreamTypeEx to request the low stream. Once the sender receives the request, it starts sending the low stream automatically.
666
+ * If you want to change this behavior, you can call this method and set mode to DisableSimulcastStream (never send low stream) or EnableSimulcastStream (always send low stream).
667
+ * If you want to revert to the default behavior after making changes, call this method again and set mode to AutoSimulcastStream. The differences and relationships between this method and enableDualStreamModeEx are as follows:
668
+ * Calling this method and setting mode to DisableSimulcastStream has the same effect as enableDualStreamModeEx(false).
669
+ * Calling this method and setting mode to EnableSimulcastStream has the same effect as enableDualStreamModeEx(true).
670
+ * Both methods can be called before or after joining a channel. If both are used, the settings of the method called later take precedence.
671
+ *
672
+ * @param mode Mode for sending video streams. See SimulcastStreamMode.
673
+ * @param streamConfig Configuration for the low video stream. See SimulcastStreamConfig. When mode is set to DisableSimulcastStream, setting streamConfig has no effect.
674
+ * @param connection Connection information. See RtcConnection.
675
+ *
676
+ * @returns
677
+ * 0: The method call succeeds.
678
+ * < 0: The method call fails. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
679
+ */
680
+ abstract setDualStreamModeEx(mode: SimulcastStreamMode, streamConfig: SimulcastStreamConfig, connection: RtcConnection): number;
681
+ /**
682
+ * @ignore
683
+ */
684
+ abstract setSimulcastConfigEx(simulcastConfig: SimulcastConfig, connection: RtcConnection): number;
685
+ /**
686
+ * @ignore
687
+ */
688
+ abstract setHighPriorityUserListEx(uidList: number[], uidNum: number, option: StreamFallbackOptions, connection: RtcConnection): number;
689
+ /**
690
+ * Takes a video snapshot using the connection ID.
691
+ *
692
+ * This method captures a snapshot of the specified user's video stream, generates a JPG image, and saves it to the specified path.
693
+ * This method is asynchronous. When the call returns, the SDK has not actually taken the snapshot.
694
+ * When used to capture a local video snapshot, it captures the video stream specified in ChannelMediaOptions.
695
+ * If the video has been pre-processed, such as with watermarking or beautification, the snapshot will include the effects of the pre-processing.
696
+ *
697
+ * @param connection Connection information. See RtcConnection.
698
+ * @param uid User ID. Set to 0 to capture a snapshot of the local user's video.
699
+ * @param filePath Make sure the directory exists and is writable. The local path to save the snapshot, including file name and format. For example:
700
+ * Windows: C:\Users\<user_name>\AppData\Local\Agora\<process_name>\example.jpg
701
+ * macOS: ~/Library/Logs/example.jpg
702
+ *
703
+ * @returns
704
+ * 0: Success.
705
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
706
+ */
707
+ abstract takeSnapshotEx(connection: RtcConnection, uid: number, filePath: string): number;
708
+ /**
709
+ * Enables/disables local snapshot upload.
710
+ *
711
+ * This method allows capturing and uploading snapshots for multiple video streams. After enabling local snapshot upload, the SDK captures and uploads snapshots of the video sent by the local user based on the module type and frequency you set in ContentInspectConfig. After capturing, the Agora server sends a callback notification to your server via HTTPS request and uploads all snapshots to the third-party cloud storage you specify. Before calling this method, make sure you have [contacted technical support](https://www.agora.io/cn/contact/) to enable the local snapshot upload service.
712
+ *
713
+ * @param enabled Whether to enable local snapshot upload: true : Enable local snapshot upload. false : Disable local snapshot upload.
714
+ * @param config Local snapshot upload configuration. See ContentInspectConfig.
715
+ * @param connection Connection information. See RtcConnection.
716
+ *
717
+ * @returns
718
+ * 0: Success.
719
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
720
+ */
721
+ abstract enableContentInspectEx(enabled: boolean, config: ContentInspectConfig, connection: RtcConnection): number;
722
+ /**
723
+ * Starts video frame rendering tracing.
724
+ *
725
+ * After this method is successfully called, the SDK uses the time of this call as the starting point and reports video frame rendering information via the onVideoRenderingTracingResult callback.
726
+ * If you do not call this method, the SDK starts tracing video rendering events automatically using the time of the joinChannel call as the starting point. You can call this method at an appropriate time based on your business scenario to customize the tracing.
727
+ * After leaving the current channel, the SDK automatically resets the time to the next joinChannel call.
728
+ *
729
+ * @param connection Connection information. See RtcConnection.
730
+ *
731
+ * @returns
732
+ * 0: Success.
733
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and resolution suggestions.
734
+ */
735
+ abstract startMediaRenderingTracingEx(connection: RtcConnection): number;
736
+ /**
737
+ * @ignore
738
+ */
739
+ abstract setParametersEx(connection: RtcConnection, parameters: string): number;
740
+ /**
741
+ * Gets the call ID using the connection ID.
742
+ *
743
+ * Each time the client joins a channel, a corresponding callId is generated to identify the call session. You can call this method to get the callId and then pass it to methods such as rate and complain.
744
+ *
745
+ * @param connection Connection information. See RtcConnection.
746
+ */
747
+ abstract getCallIdEx(connection: RtcConnection): string;
748
+ /**
749
+ * @ignore
750
+ */
751
+ abstract sendAudioMetadataEx(connection: RtcConnection, metadata: string, length: number): number;
752
+ /**
753
+ * @ignore
754
+ */
755
+ abstract enableVideoImageSourceEx(enable: boolean, options: ImageTrackOptions, connection: RtcConnection): number;
756
+ /**
757
+ * Preloads the specified sound effect into the channel.
758
+ *
759
+ * Since Available since v4.6.2. Each time you call this method, only one sound effect file can be preloaded into memory. To preload multiple sound effects, call this method multiple times. After preloading, you can call playEffect to play the preloaded sound effect, or playAllEffects to play all preloaded sound effects.
760
+ * To ensure smooth user experience, the size of the sound effect file should not exceed the limit.
761
+ * Agora recommends calling this method before joining a channel.
762
+ * If you call preloadEffectEx before playEffectEx, the file resource will not be closed after playEffectEx is executed. The next call to playEffectEx will start playback from the beginning.
763
+ * If you do not call preloadEffectEx before playEffectEx, the file resource will be destroyed after playEffectEx is executed. The next call to playEffectEx will attempt to reopen the file and play from the beginning.
764
+ *
765
+ * @param connection Connection information. See RtcConnection.
766
+ * @param soundId Sound effect ID.
767
+ * @param filePath Absolute path of the local file or URL of the online file. Supported audio formats include: mp3, mp4, m4a, aac, 3gp, mkv, and wav.
768
+ * @param startPos Start position (in milliseconds) for playing the sound effect file.
769
+ *
770
+ * @returns
771
+ * 0: Success.
772
+ * < 0: Failure.
773
+ */
774
+ abstract preloadEffectEx(connection: RtcConnection, soundId: number, filePath: string, startPos?: number): number;
775
+ /**
776
+ * Plays the specified sound effect in the channel.
777
+ *
778
+ * Since Available since v4.6.2. You can call this method to play a specified sound effect to all users in the channel. Each call to this method can only play one sound effect. To play multiple sound effects simultaneously, use different soundId and filePath values and call this method multiple times. You can also set whether to publish the sound effect in the channel.
779
+ * Agora recommends not playing more than three sound effects simultaneously.
780
+ * The sound effect ID and file path in this method must match those in the preloadEffectEx method.
781
+ * If you call preloadEffectEx before calling playEffectEx, the file resource will not be closed after playEffectEx is executed. The next call to playEffectEx will start playback from the beginning.
782
+ * If you do not call preloadEffectEx before calling playEffectEx, the file resource will be destroyed after playEffectEx is executed. The next call to playEffectEx will attempt to reopen the file and play from the beginning.
783
+ *
784
+ * @param connection RtcConnection object. See RtcConnection.
785
+ * @param soundId Sound effect ID.
786
+ * @param filePath Absolute path of the local file or URL of the online file. Supported audio formats include mp3, mp4, m4a, aac, 3gp, mkv, and wav.
787
+ * @param loopCount Number of times the sound effect is played: -1 : Loops indefinitely until stopEffect or stopAllEffects is called. 0 : Plays once. 1 : Plays twice.
788
+ * @param pitch Pitch of the sound effect. The range is 0.5 to 2.0. The default value is 1.0 (original pitch). The smaller the value, the lower the pitch.
789
+ * @param pan Spatial position of the sound effect. The range is -1.0 to 1.0: -1.0 : The sound effect comes from the user's left. 0.0 : The sound effect comes from the front. 1.0 : The sound effect comes from the user's right.
790
+ * @param gain Volume of the sound effect. The range is 0 to 100. The default value is 100 (original volume). The smaller the value, the lower the volume.
791
+ * @param publish Whether to publish the sound effect in the channel: true : Publishes the sound effect in the channel. false : (Default) Does not publish the sound effect in the channel.
792
+ * @param startPos Start position (in milliseconds) for playing the sound effect file.
793
+ *
794
+ * @returns
795
+ * 0: Success.
796
+ * < 0: Failure.
797
+ */
798
+ abstract playEffectEx(connection: RtcConnection, soundId: number, filePath: string, loopCount: number, pitch: number, pan: number, gain: number, publish?: boolean, startPos?: number): number;
799
+ /**
800
+ * Takes a video snapshot at a specified observation point using the connection ID.
801
+ *
802
+ * This method captures a snapshot of the specified user's video stream, generates a JPG image, and saves it to the specified path.
803
+ * This method is asynchronous. When the call returns, the SDK has not actually taken the snapshot.
804
+ * When used to capture a local video snapshot, it captures the video stream specified in ChannelMediaOptions.
805
+ * If the video has been pre-processed, such as with watermarking or beautification, the snapshot will include the effects of the pre-processing.
806
+ *
807
+ * @param connection Connection information. See RtcConnection.
808
+ * @param uid User ID. Set to 0 to capture a snapshot of the local user's video.
809
+ * @param config Snapshot settings. See SnapshotConfig.
810
+ *
811
+ * @returns
812
+ * 0: Success.
813
+ * < 0: Failure. See [Error Codes](https://docs.agora.io/en/video-calling/troubleshooting/error-codes) for details and troubleshooting.
814
+ */
815
+ abstract takeSnapshotWithConfigEx(connection: RtcConnection, uid: number, config: SnapshotConfig): number;
816
+ }
817
+ //# sourceMappingURL=IAgoraRtcEngineEx.d.ts.map