agora-electron-sdk 4.1.1-rc.1 → 4.2.0-dev.13
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.
- package/LICENSE +21 -21
- package/README.md +143 -143
- package/gulpfile.js +5 -4
- package/js/AgoraSdk.js +62 -60
- package/js/Private/AgoraBase.js +4575 -3269
- package/js/Private/AgoraMediaBase.js +968 -564
- package/js/Private/AgoraMediaPlayerTypes.js +422 -310
- package/js/Private/IAgoraLog.js +86 -74
- package/js/Private/IAgoraMediaEngine.js +32 -32
- package/js/Private/IAgoraMediaPlayer.js +16 -16
- package/js/Private/IAgoraMediaPlayerSource.js +3 -3
- package/js/Private/IAgoraMediaRecorder.js +12 -12
- package/js/Private/IAgoraMediaStreamingSource.js +84 -0
- package/js/Private/IAgoraMusicContentCenter.js +239 -81
- package/js/Private/IAgoraRhythmPlayer.js +70 -62
- package/js/Private/IAgoraRtcEngine.js +1807 -948
- package/js/Private/IAgoraRtcEngineEx.js +26 -18
- package/js/Private/IAgoraSpatialAudio.js +74 -30
- package/js/Private/IAudioDeviceManager.js +20 -20
- package/js/Private/extension/AgoraBaseExtension.js +2 -2
- package/js/Private/extension/AgoraMediaBaseExtension.js +2 -2
- package/js/Private/extension/AgoraMediaPlayerTypesExtension.js +2 -2
- package/js/Private/extension/IAgoraLogExtension.js +2 -2
- package/js/Private/extension/IAgoraMediaEngineExtension.js +2 -2
- package/js/Private/extension/IAgoraMediaPlayerExtension.js +2 -2
- package/js/Private/extension/IAgoraMediaPlayerSourceExtension.js +2 -2
- package/js/Private/extension/IAgoraMediaRecorderExtension.js +2 -2
- package/js/Private/extension/IAgoraMusicContentCenterExtension.js +2 -2
- package/js/Private/extension/IAgoraRhythmPlayerExtension.js +2 -2
- package/js/Private/extension/IAgoraRtcEngineExExtension.js +2 -2
- package/js/Private/extension/IAgoraRtcEngineExtension.js +2 -2
- package/js/Private/extension/IAgoraSpatialAudioExtension.js +2 -2
- package/js/Private/extension/IAudioDeviceManagerExtension.js +2 -2
- package/js/Private/impl/AgoraBaseImpl.js +23 -23
- package/js/Private/impl/AgoraMediaBaseImpl.js +118 -138
- package/js/Private/impl/IAgoraMediaEngineImpl.js +287 -325
- package/js/Private/impl/IAgoraMediaPlayerImpl.js +932 -938
- package/js/Private/impl/IAgoraMediaPlayerSourceImpl.js +63 -63
- package/js/Private/impl/IAgoraMediaRecorderImpl.js +47 -67
- package/js/Private/impl/IAgoraMusicContentCenterImpl.js +353 -323
- package/js/Private/impl/IAgoraRtcEngineExImpl.js +945 -907
- package/js/Private/impl/IAgoraRtcEngineImpl.js +4742 -4702
- package/js/Private/impl/IAgoraSpatialAudioImpl.js +362 -362
- package/js/Private/impl/IAudioDeviceManagerImpl.js +375 -375
- package/js/Private/internal/AudioDeviceManagerInternal.js +44 -44
- package/js/Private/internal/IrisApiEngine.js +391 -382
- package/js/Private/internal/LocalSpatialAudioEngineInternal.js +46 -46
- package/js/Private/internal/MediaEngineInternal.js +119 -123
- package/js/Private/internal/MediaPlayerInternal.js +215 -213
- package/js/Private/internal/MediaRecorderInternal.js +82 -81
- package/js/Private/internal/MusicContentCenterInternal.js +128 -130
- package/js/Private/internal/RtcEngineExInternal.js +422 -363
- package/js/Private/internal/emitter/EventEmitter.js +111 -111
- package/js/Private/ti/AgoraBase-ti.js +40 -40
- package/js/Private/ti/AgoraMediaBase-ti.js +71 -73
- package/js/Private/ti/AgoraMediaPlayerTypes-ti.js +5 -5
- package/js/Private/ti/IAgoraLog-ti.js +5 -5
- package/js/Private/ti/IAgoraMediaEngine-ti.js +5 -5
- package/js/Private/ti/IAgoraMediaPlayer-ti.js +38 -42
- package/js/Private/ti/IAgoraMediaPlayerSource-ti.js +48 -48
- package/js/Private/ti/IAgoraMediaRecorder-ti.js +5 -5
- package/js/Private/ti/IAgoraMediaStreamingSource-ti.js +5 -0
- package/js/Private/ti/IAgoraMusicContentCenter-ti.js +41 -41
- package/js/Private/ti/IAgoraRhythmPlayer-ti.js +5 -5
- package/js/Private/ti/IAgoraRtcEngine-ti.js +139 -139
- package/js/Private/ti/IAgoraRtcEngineEx-ti.js +5 -5
- package/js/Private/ti/IAgoraSpatialAudio-ti.js +5 -5
- package/js/Private/ti/IAudioDeviceManager-ti.js +5 -5
- package/js/Renderer/AgoraView.js +128 -131
- package/js/Renderer/IRenderer.js +40 -48
- package/js/Renderer/IRendererManager.js +9 -0
- package/js/Renderer/RendererManager.js +479 -392
- package/js/Renderer/{GlRenderer → WebGLRenderer}/index.js +469 -473
- package/js/Renderer/{GlRenderer → WebGLRenderer}/webgl-utils.js +1337 -1337
- package/js/Renderer/YUVCanvasRenderer/index.js +195 -185
- package/js/Renderer/index.js +18 -0
- package/js/Types.js +17 -29
- package/js/Utils.js +168 -173
- package/package.json +61 -103
- package/scripts/bootstrap.js +1 -1
- package/scripts/build.js +1 -0
- package/scripts/buildJS.js +3 -3
- package/scripts/clean.js +2 -1
- package/scripts/downloadPrebuild.js +5 -5
- package/scripts/getConfig.js +3 -2
- package/scripts/synclib.js +8 -5
- package/scripts/util.js +3 -2
- package/scripts/zipBuild.js +2 -1
- package/ts/AgoraSdk.ts +9 -6
- package/ts/Private/AgoraBase.ts +278 -173
- package/ts/Private/AgoraMediaBase.ts +167 -100
- package/ts/Private/AgoraMediaPlayerTypes.ts +1 -1
- package/ts/Private/IAgoraMediaEngine.ts +43 -56
- package/ts/Private/IAgoraMediaPlayer.ts +90 -104
- package/ts/Private/IAgoraMediaPlayerSource.ts +3 -8
- package/ts/Private/IAgoraMediaRecorder.ts +8 -35
- package/ts/Private/IAgoraMediaStreamingSource.ts +80 -0
- package/ts/Private/IAgoraMusicContentCenter.ts +93 -12
- package/ts/Private/IAgoraRtcEngine.ts +807 -910
- package/ts/Private/IAgoraRtcEngineEx.ts +187 -191
- package/ts/Private/IAgoraSpatialAudio.ts +40 -22
- package/ts/Private/IAudioDeviceManager.ts +35 -13
- package/ts/Private/extension/IAgoraMediaEngineExtension.ts +1 -1
- package/ts/Private/extension/IAgoraMediaPlayerExtension.ts +4 -7
- package/ts/Private/extension/IAgoraMediaRecorderExtension.ts +6 -1
- package/ts/Private/extension/IAgoraMusicContentCenterExtension.ts +1 -1
- package/ts/Private/extension/IAgoraRtcEngineExtension.ts +4 -4
- package/ts/Private/impl/AgoraBaseImpl.ts +3 -3
- package/ts/Private/impl/AgoraMediaBaseImpl.ts +36 -42
- package/ts/Private/impl/IAgoraMediaEngineImpl.ts +79 -127
- package/ts/Private/impl/IAgoraMediaPlayerImpl.ts +106 -106
- package/ts/Private/impl/IAgoraMediaRecorderImpl.ts +13 -45
- package/ts/Private/impl/IAgoraMusicContentCenterImpl.ts +61 -16
- package/ts/Private/impl/IAgoraRtcEngineExImpl.ts +129 -59
- package/ts/Private/impl/IAgoraRtcEngineImpl.ts +490 -416
- package/ts/Private/impl/IAgoraSpatialAudioImpl.ts +5 -3
- package/ts/Private/impl/IAudioDeviceManagerImpl.ts +4 -2
- package/ts/Private/internal/AudioDeviceManagerInternal.ts +6 -5
- package/ts/Private/internal/IrisApiEngine.ts +41 -32
- package/ts/Private/internal/LocalSpatialAudioEngineInternal.ts +17 -13
- package/ts/Private/internal/MediaEngineInternal.ts +9 -11
- package/ts/Private/internal/MediaPlayerInternal.ts +42 -31
- package/ts/Private/internal/MediaRecorderInternal.ts +24 -22
- package/ts/Private/internal/MusicContentCenterInternal.ts +16 -18
- package/ts/Private/internal/RtcEngineExInternal.ts +189 -66
- package/ts/Private/ti/AgoraMediaBase-ti.ts +9 -10
- package/ts/Private/ti/IAgoraMediaPlayer-ti.ts +0 -5
- package/{js/Private/ti/AgoraMediaPlayerTypes-ti.d.ts → ts/Private/ti/IAgoraMediaStreamingSource-ti.ts} +11 -6
- package/ts/Private/ti/IAgoraMusicContentCenter-ti.ts +4 -4
- package/ts/Private/ti/IAgoraRtcEngine-ti.ts +4 -4
- package/ts/Renderer/AgoraView.ts +12 -7
- package/ts/Renderer/IRenderer.ts +11 -16
- package/ts/Renderer/IRendererManager.ts +35 -0
- package/ts/Renderer/RendererManager.ts +146 -82
- package/ts/Renderer/{GlRenderer → WebGLRenderer}/index.ts +36 -51
- package/ts/Renderer/YUVCanvasRenderer/index.ts +41 -25
- package/ts/Renderer/index.ts +2 -0
- package/ts/Types.ts +43 -23
- package/ts/Utils.ts +7 -12
- package/types/AgoraSdk.d.ts +38 -36
- package/types/AgoraSdk.d.ts.map +1 -0
- package/types/Private/AgoraBase.d.ts +4455 -4358
- package/types/Private/AgoraBase.d.ts.map +1 -0
- package/types/Private/AgoraMediaBase.d.ts +1125 -1070
- package/types/Private/AgoraMediaBase.d.ts.map +1 -0
- package/types/Private/AgoraMediaPlayerTypes.d.ts +409 -408
- package/types/Private/AgoraMediaPlayerTypes.d.ts.map +1 -0
- package/types/Private/IAgoraLog.d.ts +81 -80
- package/types/Private/IAgoraLog.d.ts.map +1 -0
- package/types/Private/IAgoraMediaEngine.d.ts +184 -193
- package/types/Private/IAgoraMediaEngine.d.ts.map +1 -0
- package/types/Private/IAgoraMediaPlayer.d.ts +533 -546
- package/types/Private/IAgoraMediaPlayer.d.ts.map +1 -0
- package/types/Private/IAgoraMediaPlayerSource.d.ts +83 -88
- package/types/Private/IAgoraMediaPlayerSource.d.ts.map +1 -0
- package/types/Private/IAgoraMediaRecorder.d.ts +29 -49
- package/types/Private/IAgoraMediaRecorder.d.ts.map +1 -0
- package/types/Private/IAgoraMediaStreamingSource.d.ts +42 -0
- package/types/Private/IAgoraMediaStreamingSource.d.ts.map +1 -0
- package/types/Private/IAgoraMusicContentCenter.d.ts +336 -255
- package/types/Private/IAgoraMusicContentCenter.d.ts.map +1 -0
- package/types/Private/IAgoraRhythmPlayer.d.ts +65 -64
- package/types/Private/IAgoraRhythmPlayer.d.ts.map +1 -0
- package/types/Private/IAgoraRtcEngine.d.ts +4948 -5058
- package/types/Private/IAgoraRtcEngine.d.ts.map +1 -0
- package/types/Private/IAgoraRtcEngineEx.d.ts +554 -570
- package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -0
- package/types/Private/IAgoraSpatialAudio.d.ts +266 -248
- package/types/Private/IAgoraSpatialAudio.d.ts.map +1 -0
- package/types/Private/IAudioDeviceManager.d.ts +255 -233
- package/types/Private/IAudioDeviceManager.d.ts.map +1 -0
- package/types/Private/extension/AgoraBaseExtension.d.ts +2 -1
- package/types/Private/extension/AgoraBaseExtension.d.ts.map +1 -0
- package/types/Private/extension/AgoraMediaBaseExtension.d.ts +2 -1
- package/types/Private/extension/AgoraMediaBaseExtension.d.ts.map +1 -0
- package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts +2 -1
- package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraLogExtension.d.ts +2 -1
- package/types/Private/extension/IAgoraLogExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaEngineExtension.d.ts +41 -40
- package/types/Private/extension/IAgoraMediaEngineExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts +47 -46
- package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts +2 -1
- package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts +45 -40
- package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts +21 -20
- package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts +2 -1
- package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts +2 -1
- package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRtcEngineExtension.d.ts +43 -42
- package/types/Private/extension/IAgoraRtcEngineExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts +2 -1
- package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +1 -0
- package/types/Private/extension/IAudioDeviceManagerExtension.d.ts +2 -1
- package/types/Private/extension/IAudioDeviceManagerExtension.d.ts.map +1 -0
- package/types/Private/impl/AgoraBaseImpl.d.ts +3 -2
- package/types/Private/impl/AgoraBaseImpl.d.ts.map +1 -0
- package/types/Private/impl/AgoraMediaBaseImpl.d.ts +9 -7
- package/types/Private/impl/AgoraMediaBaseImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaEngineImpl.d.ts +40 -43
- package/types/Private/impl/IAgoraMediaEngineImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts +141 -141
- package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts +3 -2
- package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts +11 -13
- package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts +59 -51
- package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts +106 -101
- package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraRtcEngineImpl.d.ts +570 -566
- package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts +49 -48
- package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +1 -0
- package/types/Private/impl/IAudioDeviceManagerImpl.d.ts +65 -64
- package/types/Private/impl/IAudioDeviceManagerImpl.d.ts.map +1 -0
- package/types/Private/internal/AudioDeviceManagerInternal.d.ts +9 -8
- package/types/Private/internal/AudioDeviceManagerInternal.d.ts.map +1 -0
- package/types/Private/internal/IrisApiEngine.d.ts +148 -146
- package/types/Private/internal/IrisApiEngine.d.ts.map +1 -0
- package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts +19 -18
- package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaEngineInternal.d.ts +22 -21
- package/types/Private/internal/MediaEngineInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaPlayerInternal.d.ts +34 -33
- package/types/Private/internal/MediaPlayerInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaRecorderInternal.d.ts +18 -15
- package/types/Private/internal/MediaRecorderInternal.d.ts.map +1 -0
- package/types/Private/internal/MusicContentCenterInternal.d.ts +40 -39
- package/types/Private/internal/MusicContentCenterInternal.d.ts.map +1 -0
- package/types/Private/internal/RtcEngineExInternal.d.ts +80 -73
- package/types/Private/internal/RtcEngineExInternal.d.ts.map +1 -0
- package/{js → types}/Private/internal/emitter/EventEmitter.d.ts +60 -59
- package/types/Private/internal/emitter/EventEmitter.d.ts.map +1 -0
- package/types/Private/ti/AgoraBase-ti.d.ts +8 -7
- package/types/Private/ti/AgoraBase-ti.d.ts.map +1 -0
- package/types/Private/ti/AgoraMediaBase-ti.d.ts +14 -12
- package/types/Private/ti/AgoraMediaBase-ti.d.ts.map +1 -0
- package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts +7 -6
- package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraLog-ti.d.ts +7 -6
- package/types/Private/ti/IAgoraLog-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaEngine-ti.d.ts +7 -6
- package/types/Private/ti/IAgoraMediaEngine-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts +8 -8
- package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts +8 -7
- package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts +7 -6
- package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +1 -0
- package/{js/Private/ti/IAgoraMediaRecorder-ti.d.ts → types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts} +7 -6
- package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts +8 -7
- package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts +7 -6
- package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRtcEngine-ti.d.ts +10 -9
- package/types/Private/ti/IAgoraRtcEngine-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts +7 -6
- package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts +7 -6
- package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +1 -0
- package/types/Private/ti/IAudioDeviceManager-ti.d.ts +7 -6
- package/types/Private/ti/IAudioDeviceManager-ti.d.ts.map +1 -0
- package/types/Renderer/AgoraView.d.ts +70 -70
- package/types/Renderer/AgoraView.d.ts.map +1 -0
- package/types/Renderer/IRenderer.d.ts +22 -21
- package/types/Renderer/IRenderer.d.ts.map +1 -0
- package/types/Renderer/IRendererManager.d.ts +18 -0
- package/types/Renderer/IRendererManager.d.ts.map +1 -0
- package/types/Renderer/RendererManager.d.ts +154 -71
- package/types/Renderer/RendererManager.d.ts.map +1 -0
- package/types/Renderer/{GlRenderer → WebGLRenderer}/index.d.ts +49 -59
- package/types/Renderer/WebGLRenderer/index.d.ts.map +1 -0
- package/types/Renderer/WebGLRenderer/webgl-utils.d.ts +1 -0
- package/types/Renderer/WebGLRenderer/webgl-utils.d.ts.map +1 -0
- package/types/Renderer/YUVCanvasRenderer/index.d.ts +16 -16
- package/types/Renderer/YUVCanvasRenderer/index.d.ts.map +1 -0
- package/types/Renderer/index.d.ts +3 -0
- package/types/Renderer/index.d.ts.map +1 -0
- package/types/Types.d.ts +280 -260
- package/types/Types.d.ts.map +1 -0
- package/types/Utils.d.ts +59 -58
- package/types/Utils.d.ts.map +1 -0
- package/js/AgoraSdk.d.ts +0 -36
- package/js/Private/AgoraBase.d.ts +0 -4358
- package/js/Private/AgoraMediaBase.d.ts +0 -1070
- package/js/Private/AgoraMediaPlayerTypes.d.ts +0 -408
- package/js/Private/IAgoraLog.d.ts +0 -80
- package/js/Private/IAgoraMediaEngine.d.ts +0 -193
- package/js/Private/IAgoraMediaPlayer.d.ts +0 -546
- package/js/Private/IAgoraMediaPlayerSource.d.ts +0 -88
- package/js/Private/IAgoraMediaRecorder.d.ts +0 -49
- package/js/Private/IAgoraMusicContentCenter.d.ts +0 -255
- package/js/Private/IAgoraRhythmPlayer.d.ts +0 -64
- package/js/Private/IAgoraRtcEngine.d.ts +0 -5058
- package/js/Private/IAgoraRtcEngineEx.d.ts +0 -570
- package/js/Private/IAgoraSpatialAudio.d.ts +0 -248
- package/js/Private/IAudioDeviceManager.d.ts +0 -233
- package/js/Private/extension/AgoraBaseExtension.d.ts +0 -1
- package/js/Private/extension/AgoraMediaBaseExtension.d.ts +0 -1
- package/js/Private/extension/AgoraMediaPlayerTypesExtension.d.ts +0 -1
- package/js/Private/extension/IAgoraLogExtension.d.ts +0 -1
- package/js/Private/extension/IAgoraMediaEngineExtension.d.ts +0 -40
- package/js/Private/extension/IAgoraMediaPlayerExtension.d.ts +0 -46
- package/js/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts +0 -1
- package/js/Private/extension/IAgoraMediaRecorderExtension.d.ts +0 -40
- package/js/Private/extension/IAgoraMusicContentCenterExtension.d.ts +0 -20
- package/js/Private/extension/IAgoraRhythmPlayerExtension.d.ts +0 -1
- package/js/Private/extension/IAgoraRtcEngineExExtension.d.ts +0 -1
- package/js/Private/extension/IAgoraRtcEngineExtension.d.ts +0 -42
- package/js/Private/extension/IAgoraSpatialAudioExtension.d.ts +0 -1
- package/js/Private/extension/IAudioDeviceManagerExtension.d.ts +0 -1
- package/js/Private/impl/AgoraBaseImpl.d.ts +0 -2
- package/js/Private/impl/AgoraMediaBaseImpl.d.ts +0 -7
- package/js/Private/impl/IAgoraMediaEngineImpl.d.ts +0 -43
- package/js/Private/impl/IAgoraMediaPlayerImpl.d.ts +0 -141
- package/js/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts +0 -2
- package/js/Private/impl/IAgoraMediaRecorderImpl.d.ts +0 -13
- package/js/Private/impl/IAgoraMusicContentCenterImpl.d.ts +0 -51
- package/js/Private/impl/IAgoraRtcEngineExImpl.d.ts +0 -101
- package/js/Private/impl/IAgoraRtcEngineImpl.d.ts +0 -566
- package/js/Private/impl/IAgoraSpatialAudioImpl.d.ts +0 -48
- package/js/Private/impl/IAudioDeviceManagerImpl.d.ts +0 -64
- package/js/Private/internal/AudioDeviceManagerInternal.d.ts +0 -8
- package/js/Private/internal/IrisApiEngine.d.ts +0 -146
- package/js/Private/internal/LocalSpatialAudioEngineInternal.d.ts +0 -18
- package/js/Private/internal/MediaEngineInternal.d.ts +0 -21
- package/js/Private/internal/MediaPlayerInternal.d.ts +0 -33
- package/js/Private/internal/MediaRecorderInternal.d.ts +0 -15
- package/js/Private/internal/MusicContentCenterInternal.d.ts +0 -39
- package/js/Private/internal/RtcEngineExInternal.d.ts +0 -73
- package/js/Private/ti/AgoraBase-ti.d.ts +0 -7
- package/js/Private/ti/AgoraMediaBase-ti.d.ts +0 -12
- package/js/Private/ti/IAgoraLog-ti.d.ts +0 -6
- package/js/Private/ti/IAgoraMediaEngine-ti.d.ts +0 -6
- package/js/Private/ti/IAgoraMediaPlayer-ti.d.ts +0 -8
- package/js/Private/ti/IAgoraMediaPlayerSource-ti.d.ts +0 -7
- package/js/Private/ti/IAgoraMusicContentCenter-ti.d.ts +0 -7
- package/js/Private/ti/IAgoraRhythmPlayer-ti.d.ts +0 -6
- package/js/Private/ti/IAgoraRtcEngine-ti.d.ts +0 -9
- package/js/Private/ti/IAgoraRtcEngineEx-ti.d.ts +0 -6
- package/js/Private/ti/IAgoraSpatialAudio-ti.d.ts +0 -6
- package/js/Private/ti/IAudioDeviceManager-ti.d.ts +0 -6
- package/js/Renderer/AgoraView.d.ts +0 -70
- package/js/Renderer/GlRenderer/index.d.ts +0 -59
- package/js/Renderer/GlRenderer/webgl-utils.d.ts +0 -0
- package/js/Renderer/IRenderer.d.ts +0 -21
- package/js/Renderer/RendererManager.d.ts +0 -71
- package/js/Renderer/YUVCanvasRenderer/index.d.ts +0 -16
- package/js/Types.d.ts +0 -260
- package/js/Utils.d.ts +0 -58
- /package/ts/Renderer/{GlRenderer → WebGLRenderer}/webgl-utils.js +0 -0
|
@@ -1,392 +1,479 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RendererManager = void 0;
|
|
7
|
-
const AgoraBase_1 = require("../Private/AgoraBase");
|
|
8
|
-
const AgoraMediaBase_1 = require("../Private/AgoraMediaBase");
|
|
9
|
-
const Types_1 = require("../Types");
|
|
10
|
-
const Utils_1 = require("../Utils");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.renderFps =
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const { videoSourceType } =
|
|
136
|
-
if (
|
|
137
|
-
(0, Utils_1.
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const
|
|
172
|
-
videoSourceType
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
(
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
return;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
(
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RendererManager = void 0;
|
|
7
|
+
const AgoraBase_1 = require("../Private/AgoraBase");
|
|
8
|
+
const AgoraMediaBase_1 = require("../Private/AgoraMediaBase");
|
|
9
|
+
const Types_1 = require("../Types");
|
|
10
|
+
const Utils_1 = require("../Utils");
|
|
11
|
+
const IRendererManager_1 = require("./IRendererManager");
|
|
12
|
+
const WebGLRenderer_1 = __importDefault(require("./WebGLRenderer"));
|
|
13
|
+
const YUVCanvasRenderer_1 = require("./YUVCanvasRenderer");
|
|
14
|
+
/**
|
|
15
|
+
* @ignore
|
|
16
|
+
*/
|
|
17
|
+
class RendererManager extends IRendererManager_1.IRendererManager {
|
|
18
|
+
/**
|
|
19
|
+
* @ignore
|
|
20
|
+
*/
|
|
21
|
+
isRendering = false;
|
|
22
|
+
renderFps;
|
|
23
|
+
/**
|
|
24
|
+
* @ignore
|
|
25
|
+
*/
|
|
26
|
+
videoFrameUpdateInterval;
|
|
27
|
+
/**
|
|
28
|
+
* @ignore
|
|
29
|
+
*/
|
|
30
|
+
renderers;
|
|
31
|
+
/**
|
|
32
|
+
* @ignore
|
|
33
|
+
*/
|
|
34
|
+
renderMode;
|
|
35
|
+
/**
|
|
36
|
+
* @ignore
|
|
37
|
+
*/
|
|
38
|
+
msgBridge;
|
|
39
|
+
/**
|
|
40
|
+
* @ignore
|
|
41
|
+
*/
|
|
42
|
+
defaultRenderConfig;
|
|
43
|
+
constructor() {
|
|
44
|
+
super();
|
|
45
|
+
this.renderFps = 10;
|
|
46
|
+
this.renderers = new Map();
|
|
47
|
+
this.renderMode = this.checkWebglEnv()
|
|
48
|
+
? Types_1.RENDER_MODE.WEBGL
|
|
49
|
+
: Types_1.RENDER_MODE.SOFTWARE;
|
|
50
|
+
this.msgBridge = Utils_1.AgoraEnv.AgoraElectronBridge;
|
|
51
|
+
this.defaultRenderConfig = {
|
|
52
|
+
rendererOptions: {
|
|
53
|
+
contentMode: AgoraMediaBase_1.RenderModeType.RenderModeFit,
|
|
54
|
+
mirror: false,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Sets the channel mode of the current audio file.
|
|
60
|
+
* In a stereo music file, the left and right channels can store different audio data. According to your needs, you can set the channel mode to original mode, left channel mode, right channel mode, or mixed channel mode. For example, in the KTV scenario, the left channel of the music file stores the musical accompaniment, and the right channel stores the singing voice. If you only need to listen to the accompaniment, call this method to set the channel mode of the music file to left channel mode; if you need to listen to the accompaniment and the singing voice at the same time, call this method to set the channel mode to mixed channel mode.Call this method after calling open .This method only applies to stereo audio files.
|
|
61
|
+
*
|
|
62
|
+
* @param mode The channel mode. See AudioDualMonoMode .
|
|
63
|
+
*
|
|
64
|
+
* @returns
|
|
65
|
+
* 0: Success.< 0: Failure.
|
|
66
|
+
*/
|
|
67
|
+
setRenderMode(mode) {
|
|
68
|
+
this.renderMode = mode;
|
|
69
|
+
(0, Utils_1.logInfo)('setRenderMode: new render mode will take effect only if new view bind to render');
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @ignore
|
|
73
|
+
*/
|
|
74
|
+
setFPS(fps) {
|
|
75
|
+
this.renderFps = fps;
|
|
76
|
+
this.restartRender();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @ignore
|
|
80
|
+
*/
|
|
81
|
+
setRenderOption(view, contentMode = AgoraMediaBase_1.RenderModeType.RenderModeFit, mirror = false) {
|
|
82
|
+
if (!view) {
|
|
83
|
+
(0, Utils_1.logError)('setRenderOption: view not exist', view);
|
|
84
|
+
}
|
|
85
|
+
this.forEachStream(({ renders }) => {
|
|
86
|
+
renders?.forEach((render) => {
|
|
87
|
+
if (render.equalsElement(view)) {
|
|
88
|
+
render.setRenderOption({ contentMode, mirror });
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @ignore
|
|
95
|
+
*/
|
|
96
|
+
setRenderOptionByConfig(rendererConfig) {
|
|
97
|
+
const { uid, channelId, rendererOptions, videoSourceType, } = (0, Utils_1.getDefaultRendererVideoConfig)(rendererConfig);
|
|
98
|
+
const renderList = this.getRenderers({ uid, channelId, videoSourceType });
|
|
99
|
+
renderList
|
|
100
|
+
? renderList
|
|
101
|
+
.filter((renderItem) => {
|
|
102
|
+
if (rendererConfig.view) {
|
|
103
|
+
return renderItem.equalsElement(rendererConfig.view);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
.forEach((renderItem) => renderItem.setRenderOption(rendererOptions))
|
|
110
|
+
: (0, Utils_1.logWarn)(`RenderStreamType: ${videoSourceType} channelId:${channelId} uid:${uid} have no render view, you need to call this api after setView`);
|
|
111
|
+
return AgoraBase_1.ErrorCodeType.ErrOk;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* @ignore
|
|
115
|
+
*/
|
|
116
|
+
checkWebglEnv() {
|
|
117
|
+
let gl;
|
|
118
|
+
let canvas = document.createElement('canvas');
|
|
119
|
+
try {
|
|
120
|
+
gl =
|
|
121
|
+
canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
|
|
122
|
+
(0, Utils_1.logInfo)('Your browser support webGL');
|
|
123
|
+
}
|
|
124
|
+
catch (e) {
|
|
125
|
+
(0, Utils_1.logWarn)('Your browser may not support webGL');
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
return !!gl;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @ignore
|
|
132
|
+
*/
|
|
133
|
+
setupVideo(rendererVideoConfig) {
|
|
134
|
+
const formatConfig = (0, Utils_1.getDefaultRendererVideoConfig)(rendererVideoConfig);
|
|
135
|
+
const { uid, channelId, videoSourceType, rendererOptions, view } = formatConfig;
|
|
136
|
+
if (!formatConfig.view) {
|
|
137
|
+
(0, Utils_1.logWarn)('setupVideo->destroyRenderersByConfig, because of view is null');
|
|
138
|
+
this.destroyRenderersByConfig(videoSourceType, channelId, uid);
|
|
139
|
+
return -AgoraBase_1.ErrorCodeType.ErrInvalidArgument;
|
|
140
|
+
}
|
|
141
|
+
// ensure a render to RenderMap
|
|
142
|
+
const render = this.bindHTMLElementToRender(formatConfig, view);
|
|
143
|
+
// render config
|
|
144
|
+
render?.setRenderOption(rendererOptions);
|
|
145
|
+
// enable iris videoFrame
|
|
146
|
+
this.enableVideoFrameCache({
|
|
147
|
+
uid,
|
|
148
|
+
channelId,
|
|
149
|
+
videoSourceType,
|
|
150
|
+
});
|
|
151
|
+
// enable render
|
|
152
|
+
this.enableRender(true);
|
|
153
|
+
return AgoraBase_1.ErrorCodeType.ErrOk;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* @ignore
|
|
157
|
+
*/
|
|
158
|
+
setupLocalVideo(rendererConfig) {
|
|
159
|
+
const { videoSourceType } = rendererConfig;
|
|
160
|
+
if (videoSourceType === AgoraMediaBase_1.VideoSourceType.VideoSourceRemote) {
|
|
161
|
+
(0, Utils_1.logError)('setupLocalVideo videoSourceType error', videoSourceType);
|
|
162
|
+
return -AgoraBase_1.ErrorCodeType.ErrInvalidArgument;
|
|
163
|
+
}
|
|
164
|
+
this.setupVideo({ ...rendererConfig });
|
|
165
|
+
return AgoraBase_1.ErrorCodeType.ErrOk;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* @ignore
|
|
169
|
+
*/
|
|
170
|
+
setupRemoteVideo(rendererConfig) {
|
|
171
|
+
const { videoSourceType } = rendererConfig;
|
|
172
|
+
if (videoSourceType !== AgoraMediaBase_1.VideoSourceType.VideoSourceRemote) {
|
|
173
|
+
(0, Utils_1.logError)('setupRemoteVideo videoSourceType error', videoSourceType);
|
|
174
|
+
return -AgoraBase_1.ErrorCodeType.ErrInvalidArgument;
|
|
175
|
+
}
|
|
176
|
+
this.setupVideo({ ...rendererConfig });
|
|
177
|
+
return AgoraBase_1.ErrorCodeType.ErrOk;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Destroys a video renderer object.
|
|
181
|
+
*
|
|
182
|
+
* @param view The HTMLElement object to be destroyed.
|
|
183
|
+
*/
|
|
184
|
+
destroyRendererByView(view) {
|
|
185
|
+
const renders = this.renderers;
|
|
186
|
+
renders.forEach((channelMap, videoSourceType) => {
|
|
187
|
+
channelMap.forEach((uidMap, channelId) => {
|
|
188
|
+
uidMap.forEach((renderConfig, uid) => {
|
|
189
|
+
let hasRender = false;
|
|
190
|
+
const remainRenders = renderConfig.renders?.filter((render) => {
|
|
191
|
+
const isFilter = render.equalsElement(view);
|
|
192
|
+
if (isFilter) {
|
|
193
|
+
hasRender = true;
|
|
194
|
+
render.unbind();
|
|
195
|
+
}
|
|
196
|
+
return !isFilter;
|
|
197
|
+
});
|
|
198
|
+
if (!hasRender) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (remainRenders?.length === 0 || !remainRenders) {
|
|
202
|
+
this.disableVideoFrameCache({ uid, channelId, videoSourceType });
|
|
203
|
+
}
|
|
204
|
+
renderConfig.renders = remainRenders;
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* @ignore
|
|
211
|
+
*/
|
|
212
|
+
destroyRenderersByConfig(videoSourceType, channelId, uid) {
|
|
213
|
+
const config = (0, Utils_1.formatConfigByVideoSourceType)(videoSourceType, channelId, uid);
|
|
214
|
+
videoSourceType = config.videoSourceType;
|
|
215
|
+
channelId = config.channelId;
|
|
216
|
+
uid = config.uid;
|
|
217
|
+
this.disableVideoFrameCache(config);
|
|
218
|
+
const uidMap = this.renderers.get(videoSourceType)?.get(channelId);
|
|
219
|
+
const renderMap = uidMap?.get(uid);
|
|
220
|
+
if (!renderMap) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
renderMap.renders?.forEach((renderItem) => {
|
|
224
|
+
renderItem.unbind();
|
|
225
|
+
});
|
|
226
|
+
renderMap.renders = [];
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* @ignore
|
|
230
|
+
*/
|
|
231
|
+
removeAllRenderer() {
|
|
232
|
+
const renderMap = this.forEachStream((renderConfig, videoFrameCacheConfig) => {
|
|
233
|
+
this.disableVideoFrameCache(videoFrameCacheConfig);
|
|
234
|
+
renderConfig.renders?.forEach((renderItem) => {
|
|
235
|
+
renderItem.unbind();
|
|
236
|
+
});
|
|
237
|
+
renderConfig.renders = [];
|
|
238
|
+
});
|
|
239
|
+
renderMap.clear();
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* @ignore
|
|
243
|
+
*/
|
|
244
|
+
clear() {
|
|
245
|
+
this.stopRender();
|
|
246
|
+
this.removeAllRenderer();
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Enables/Disables the local video capture.
|
|
250
|
+
* This method disables or re-enables the local video capture, and does not affect receiving the remote video stream.After calling enableVideo , the local video capture is enabled by default. You can call enableLocalVideo (false) to disable the local video capture. If you want to re-enable the local video capture, call enableLocalVideo(true).After the local video capturer is successfully disabled or re-enabled, the SDK triggers the onRemoteVideoStateChanged callback on the remote client.You can call this method either before or after joining a channel.This method enables the internal engine and is valid after leaving the channel.
|
|
251
|
+
*
|
|
252
|
+
* @param enabled Whether to enable the local video capture.true: (Default) Enable the local video capture.false: Disable the local video capture. Once the local video is disabled, the remote users cannot receive the video stream of the local user, while the local user can still receive the video streams of remote users. When set to false, this method does not require a local camera.
|
|
253
|
+
*
|
|
254
|
+
* @returns
|
|
255
|
+
* 0: Success.< 0: Failure.
|
|
256
|
+
*/
|
|
257
|
+
enableRender(enabled = true) {
|
|
258
|
+
if (enabled && this.isRendering) {
|
|
259
|
+
//is already _isRendering
|
|
260
|
+
}
|
|
261
|
+
else if (enabled && !this.isRendering) {
|
|
262
|
+
this.startRenderer();
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
this.stopRender();
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* @ignore
|
|
270
|
+
*/
|
|
271
|
+
startRenderer() {
|
|
272
|
+
this.isRendering = true;
|
|
273
|
+
const renderFunc = (rendererItem, { videoSourceType, channelId, uid }) => {
|
|
274
|
+
const { renders } = rendererItem;
|
|
275
|
+
if (!renders || renders?.length === 0) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
let finalResult = this.msgBridge.GetVideoFrame(rendererItem.shareVideoFrame);
|
|
279
|
+
switch (finalResult.ret) {
|
|
280
|
+
case 0:
|
|
281
|
+
// GET_VIDEO_FRAME_CACHE_RETURN_TYPE::OK = 0,
|
|
282
|
+
// everything is ok
|
|
283
|
+
break;
|
|
284
|
+
case 1: {
|
|
285
|
+
// GET_VIDEO_FRAME_CACHE_RETURN_TYPE::RESIZED
|
|
286
|
+
const { width, height, yStride } = finalResult;
|
|
287
|
+
const newShareVideoFrame = this.resizeShareVideoFrame(videoSourceType, channelId, uid, width, height, yStride);
|
|
288
|
+
rendererItem.shareVideoFrame = newShareVideoFrame;
|
|
289
|
+
finalResult = this.msgBridge.GetVideoFrame(newShareVideoFrame);
|
|
290
|
+
break;
|
|
291
|
+
}
|
|
292
|
+
case 2:
|
|
293
|
+
// GET_VIDEO_FRAME_CACHE_RETURN_TYPE::NO_CACHE
|
|
294
|
+
// setupVideo/AgoraView render before initialize
|
|
295
|
+
// this.enableVideoFrameCache({ videoSourceType, channelId, uid });
|
|
296
|
+
break;
|
|
297
|
+
default:
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
if (finalResult.ret !== 0) {
|
|
301
|
+
(0, Utils_1.logWarn)('GetVideoFrame ret is', finalResult.ret, rendererItem);
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
if (!finalResult.isNewFrame) {
|
|
305
|
+
(0, Utils_1.logDebug)('GetVideoFrame isNewFrame is false', rendererItem);
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
const renderVideoFrame = rendererItem.shareVideoFrame;
|
|
309
|
+
if (renderVideoFrame.width > 0 && renderVideoFrame.height > 0) {
|
|
310
|
+
renders.forEach((renderItem) => {
|
|
311
|
+
renderItem.drawFrame(rendererItem.shareVideoFrame);
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
this.videoFrameUpdateInterval = setInterval(() => {
|
|
316
|
+
this.forEachStream(renderFunc);
|
|
317
|
+
}, 1000 / this.renderFps);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* @ignore
|
|
321
|
+
*/
|
|
322
|
+
stopRender() {
|
|
323
|
+
this.isRendering = false;
|
|
324
|
+
if (this.videoFrameUpdateInterval) {
|
|
325
|
+
clearInterval(this.videoFrameUpdateInterval);
|
|
326
|
+
this.videoFrameUpdateInterval = undefined;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* @ignore
|
|
331
|
+
*/
|
|
332
|
+
restartRender() {
|
|
333
|
+
if (this.videoFrameUpdateInterval) {
|
|
334
|
+
this.stopRender();
|
|
335
|
+
this.startRenderer();
|
|
336
|
+
(0, Utils_1.logInfo)(`restartRender: Fps: ${this.renderFps} restartInterval`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* @ignore
|
|
341
|
+
*/
|
|
342
|
+
createRenderer(failCallback) {
|
|
343
|
+
if (this.renderMode === Types_1.RENDER_MODE.SOFTWARE) {
|
|
344
|
+
return new YUVCanvasRenderer_1.YUVCanvasRenderer();
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
return new WebGLRenderer_1.default(failCallback);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* @ignore
|
|
352
|
+
*/
|
|
353
|
+
getRender({ videoSourceType, channelId, uid, }) {
|
|
354
|
+
return this.renderers.get(videoSourceType)?.get(channelId)?.get(uid);
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* @ignore
|
|
358
|
+
*/
|
|
359
|
+
getRenderers({ videoSourceType, channelId, uid, }) {
|
|
360
|
+
return (this.renderers.get(videoSourceType)?.get(channelId)?.get(uid)?.renders ||
|
|
361
|
+
[]);
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* @ignore
|
|
365
|
+
*/
|
|
366
|
+
bindHTMLElementToRender(config, view) {
|
|
367
|
+
this.ensureRendererConfig(config);
|
|
368
|
+
const renders = this.getRenderers(config);
|
|
369
|
+
const filterRenders = renders?.filter((render) => render.equalsElement(view)) || [];
|
|
370
|
+
const hasBeenAdd = filterRenders.length > 0;
|
|
371
|
+
if (hasBeenAdd) {
|
|
372
|
+
(0, Utils_1.logWarn)('bindHTMLElementToRender: this view has bind to render', filterRenders);
|
|
373
|
+
return filterRenders[0];
|
|
374
|
+
}
|
|
375
|
+
const renderer = this.createRenderer(() => {
|
|
376
|
+
const renderConfig = this.getRender(config);
|
|
377
|
+
if (!renderConfig) {
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
renderConfig.renders = renders.filter((r) => r !== renderer);
|
|
381
|
+
const contentMode = renderer.contentMode;
|
|
382
|
+
renderer.unbind();
|
|
383
|
+
this.setRenderMode(Types_1.RENDER_MODE.SOFTWARE);
|
|
384
|
+
const newRender = this.createRenderer();
|
|
385
|
+
newRender.contentMode = contentMode;
|
|
386
|
+
newRender.bind(view);
|
|
387
|
+
renderConfig.renders.push(newRender);
|
|
388
|
+
});
|
|
389
|
+
renderer.bind(view);
|
|
390
|
+
renders.push(renderer);
|
|
391
|
+
return renderer;
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* @ignore
|
|
395
|
+
*/
|
|
396
|
+
forEachStream(callbackfn) {
|
|
397
|
+
const renders = this.renderers;
|
|
398
|
+
renders.forEach((channelMap, videoSourceType) => {
|
|
399
|
+
channelMap.forEach((uidMap, channelId) => {
|
|
400
|
+
uidMap.forEach((renderConfig, uid) => {
|
|
401
|
+
callbackfn(renderConfig, { videoSourceType, channelId, uid }, { channelMap, uidMap });
|
|
402
|
+
});
|
|
403
|
+
});
|
|
404
|
+
});
|
|
405
|
+
return renders;
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* @ignore
|
|
409
|
+
*/
|
|
410
|
+
enableVideoFrameCache(videoFrameCacheConfig) {
|
|
411
|
+
(0, Utils_1.logDebug)(`enableVideoFrameCache ${JSON.stringify(videoFrameCacheConfig)}`);
|
|
412
|
+
this.msgBridge.EnableVideoFrameCache(videoFrameCacheConfig);
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* @ignore
|
|
416
|
+
*/
|
|
417
|
+
disableVideoFrameCache(videoFrameCacheConfig) {
|
|
418
|
+
(0, Utils_1.logDebug)(`disableVideoFrameCache ${JSON.stringify(videoFrameCacheConfig)}`);
|
|
419
|
+
this.msgBridge.DisableVideoFrameCache(videoFrameCacheConfig);
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* @ignore
|
|
423
|
+
*/
|
|
424
|
+
ensureRendererConfig(config) {
|
|
425
|
+
const { videoSourceType, uid, channelId } = config;
|
|
426
|
+
const emptyRenderConfig = {
|
|
427
|
+
renders: [],
|
|
428
|
+
shareVideoFrame: this.resizeShareVideoFrame(videoSourceType, channelId, uid),
|
|
429
|
+
};
|
|
430
|
+
const emptyUidMap = new Map([[uid, emptyRenderConfig]]);
|
|
431
|
+
const emptyChannelMap = new Map([[channelId, emptyUidMap]]);
|
|
432
|
+
const renderers = this.renderers;
|
|
433
|
+
const videoSourceMap = renderers.get(videoSourceType);
|
|
434
|
+
if (!videoSourceMap) {
|
|
435
|
+
renderers.set(videoSourceType, emptyChannelMap);
|
|
436
|
+
return emptyUidMap;
|
|
437
|
+
}
|
|
438
|
+
const channelMap = videoSourceMap.get(channelId);
|
|
439
|
+
if (!channelMap) {
|
|
440
|
+
videoSourceMap.set(channelId, emptyUidMap);
|
|
441
|
+
return emptyUidMap;
|
|
442
|
+
}
|
|
443
|
+
const renderConfig = channelMap?.get(uid);
|
|
444
|
+
if (!renderConfig) {
|
|
445
|
+
channelMap?.set(uid, emptyRenderConfig);
|
|
446
|
+
(0, Utils_1.logWarn)(`ensureRendererMap uid map for channelId:${channelId} uid:${uid}`);
|
|
447
|
+
return emptyUidMap;
|
|
448
|
+
}
|
|
449
|
+
return channelMap;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* @ignore
|
|
453
|
+
*/
|
|
454
|
+
resizeShareVideoFrame(videoSourceType, channelId, uid, width = 0, height = 0, yStride = 0) {
|
|
455
|
+
return {
|
|
456
|
+
videoSourceType,
|
|
457
|
+
channelId,
|
|
458
|
+
uid,
|
|
459
|
+
yBuffer: Buffer.alloc(yStride * height),
|
|
460
|
+
uBuffer: Buffer.alloc((yStride * height) / 4),
|
|
461
|
+
vBuffer: Buffer.alloc((yStride * height) / 4),
|
|
462
|
+
width,
|
|
463
|
+
height,
|
|
464
|
+
yStride,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* @ignore
|
|
469
|
+
*/
|
|
470
|
+
updateVideoFrameCacheInMap(config, shareVideoFrame) {
|
|
471
|
+
let rendererConfigMap = this.ensureRendererConfig(config);
|
|
472
|
+
rendererConfigMap
|
|
473
|
+
? Object.assign(rendererConfigMap.get(config.uid) ?? {}, {
|
|
474
|
+
shareVideoFrame,
|
|
475
|
+
})
|
|
476
|
+
: (0, Utils_1.logWarn)(`updateVideoFrameCacheInMap videoSourceType:${config.videoSourceType} channelId:${config.channelId} uid:${config.uid} rendererConfigMap is null`);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
exports.RendererManager = RendererManager;
|