agora-electron-sdk 4.5.3-dev.2 → 4.5.3
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/CHANGELOG.md +4 -0
- package/js/{ts/Private → Private}/internal/AgoraH265TranscoderInternal.js +3 -5
- package/js/{ts/Private → Private}/internal/IrisApiEngine.js +71 -14
- package/js/{ts/Private → Private}/internal/MediaEngineInternal.js +3 -5
- package/js/{ts/Private → Private}/internal/MediaPlayerInternal.js +3 -5
- package/js/{ts/Private → Private}/internal/MediaRecorderInternal.js +5 -6
- package/js/{ts/Private → Private}/internal/MusicContentCenterInternal.js +3 -5
- package/js/{ts/Private → Private}/internal/RtcEngineExInternal.js +45 -22
- package/js/{ts/Renderer → Renderer}/RendererCache.js +3 -18
- package/package.json +5 -5
- package/ts/Private/internal/AgoraH265TranscoderInternal.ts +8 -6
- package/ts/Private/internal/IrisApiEngine.ts +104 -14
- package/ts/Private/internal/MediaEngineInternal.ts +8 -6
- package/ts/Private/internal/MediaPlayerInternal.ts +8 -6
- package/ts/Private/internal/MediaRecorderInternal.ts +10 -7
- package/ts/Private/internal/MusicContentCenterInternal.ts +8 -6
- package/ts/Private/internal/RtcEngineExInternal.ts +57 -26
- package/ts/Renderer/RendererCache.ts +3 -22
- package/types/AgoraSdk.d.ts.map +1 -0
- package/types/Decoder/gpu-utils.d.ts.map +1 -0
- package/types/Decoder/index.d.ts.map +1 -0
- package/types/Private/AgoraBase.d.ts.map +1 -0
- package/types/Private/AgoraMediaBase.d.ts.map +1 -0
- package/types/Private/AgoraMediaPlayerTypes.d.ts.map +1 -0
- package/types/Private/IAgoraH265Transcoder.d.ts.map +1 -0
- package/types/Private/IAgoraLog.d.ts.map +1 -0
- package/types/Private/IAgoraMediaEngine.d.ts.map +1 -0
- package/types/Private/IAgoraMediaPlayer.d.ts.map +1 -0
- package/types/Private/IAgoraMediaPlayerSource.d.ts.map +1 -0
- package/types/Private/IAgoraMediaRecorder.d.ts.map +1 -0
- package/types/Private/IAgoraMediaStreamingSource.d.ts.map +1 -0
- package/types/Private/IAgoraMusicContentCenter.d.ts.map +1 -0
- package/types/Private/IAgoraRhythmPlayer.d.ts.map +1 -0
- package/types/Private/IAgoraRtcEngine.d.ts.map +1 -0
- package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -0
- package/types/Private/IAgoraSpatialAudio.d.ts.map +1 -0
- package/types/Private/IAudioDeviceManager.d.ts.map +1 -0
- package/types/Private/extension/AgoraBaseExtension.d.ts.map +1 -0
- package/types/Private/extension/AgoraMediaBaseExtension.d.ts.map +1 -0
- package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraLogExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaEngineExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRtcEngineExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +1 -0
- package/types/Private/extension/IAudioDeviceManagerExtension.d.ts.map +1 -0
- package/types/Private/impl/AgoraBaseImpl.d.ts.map +1 -0
- package/types/Private/impl/AgoraMediaBaseImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaEngineImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +1 -0
- package/types/Private/impl/IAudioDeviceManagerImpl.d.ts.map +1 -0
- package/types/Private/internal/AgoraH265TranscoderInternal.d.ts.map +1 -0
- package/types/Private/internal/AgoraMediaBaseInternal.d.ts.map +1 -0
- package/types/Private/internal/AudioDeviceManagerInternal.d.ts.map +1 -0
- package/types/{ts/Private → Private}/internal/IrisApiEngine.d.ts +4 -0
- package/types/Private/internal/IrisApiEngine.d.ts.map +1 -0
- package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaEngineInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaPlayerInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaRecorderInternal.d.ts.map +1 -0
- package/types/Private/internal/MusicContentCenterInternal.d.ts.map +1 -0
- package/types/Private/internal/RtcEngineExInternal.d.ts.map +1 -0
- package/types/Private/internal/VideoEffectObjectInternal.d.ts.map +1 -0
- package/types/{ts/Private → Private}/ipc/main.d.ts.map +1 -1
- package/types/Private/ipc/renderer.d.ts.map +1 -0
- package/types/Private/ti/AgoraBase-ti.d.ts.map +1 -0
- package/types/Private/ti/AgoraMediaBase-ti.d.ts.map +1 -0
- package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraLog-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaEngine-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRtcEngine-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +1 -0
- package/types/Private/ti/IAudioDeviceManager-ti.d.ts.map +1 -0
- package/types/Renderer/AgoraView.d.ts.map +1 -0
- package/types/Renderer/CapabilityManager.d.ts.map +1 -0
- package/types/Renderer/IRenderer.d.ts.map +1 -0
- package/types/Renderer/IRendererCache.d.ts.map +1 -0
- package/types/Renderer/RendererCache.d.ts.map +1 -0
- package/types/Renderer/RendererManager.d.ts.map +1 -0
- package/types/Renderer/WebCodecsRenderer/index.d.ts.map +1 -0
- package/types/Renderer/WebCodecsRendererCache.d.ts.map +1 -0
- package/types/Renderer/WebGLRenderer/index.d.ts.map +1 -0
- package/types/Renderer/WebGLRenderer/webgl-utils.d.ts.map +1 -0
- package/types/Renderer/YUVCanvasRenderer/index.d.ts.map +1 -0
- package/types/Renderer/index.d.ts.map +1 -0
- package/types/Types.d.ts.map +1 -0
- package/types/Utils.d.ts.map +1 -0
- package/js/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.js +0 -395
- package/types/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.d.ts +0 -168
- package/types/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.d.ts.map +0 -1
- package/types/ts/AgoraSdk.d.ts.map +0 -1
- package/types/ts/Decoder/gpu-utils.d.ts.map +0 -1
- package/types/ts/Decoder/index.d.ts.map +0 -1
- package/types/ts/Private/AgoraBase.d.ts.map +0 -1
- package/types/ts/Private/AgoraMediaBase.d.ts.map +0 -1
- package/types/ts/Private/AgoraMediaPlayerTypes.d.ts.map +0 -1
- package/types/ts/Private/IAgoraH265Transcoder.d.ts.map +0 -1
- package/types/ts/Private/IAgoraLog.d.ts.map +0 -1
- package/types/ts/Private/IAgoraMediaEngine.d.ts.map +0 -1
- package/types/ts/Private/IAgoraMediaPlayer.d.ts.map +0 -1
- package/types/ts/Private/IAgoraMediaPlayerSource.d.ts.map +0 -1
- package/types/ts/Private/IAgoraMediaRecorder.d.ts.map +0 -1
- package/types/ts/Private/IAgoraMediaStreamingSource.d.ts.map +0 -1
- package/types/ts/Private/IAgoraMusicContentCenter.d.ts.map +0 -1
- package/types/ts/Private/IAgoraRhythmPlayer.d.ts.map +0 -1
- package/types/ts/Private/IAgoraRtcEngine.d.ts.map +0 -1
- package/types/ts/Private/IAgoraRtcEngineEx.d.ts.map +0 -1
- package/types/ts/Private/IAgoraSpatialAudio.d.ts.map +0 -1
- package/types/ts/Private/IAudioDeviceManager.d.ts.map +0 -1
- package/types/ts/Private/extension/AgoraBaseExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/AgoraMediaBaseExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraLogExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraMediaEngineExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraRtcEngineExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +0 -1
- package/types/ts/Private/extension/IAudioDeviceManagerExtension.d.ts.map +0 -1
- package/types/ts/Private/impl/AgoraBaseImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/AgoraMediaBaseImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraMediaEngineImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraRtcEngineImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +0 -1
- package/types/ts/Private/impl/IAudioDeviceManagerImpl.d.ts.map +0 -1
- package/types/ts/Private/internal/AgoraH265TranscoderInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/AgoraMediaBaseInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/AudioDeviceManagerInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/IrisApiEngine.d.ts.map +0 -1
- package/types/ts/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/MediaEngineInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/MediaPlayerInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/MediaRecorderInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/MusicContentCenterInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/RtcEngineExInternal.d.ts.map +0 -1
- package/types/ts/Private/internal/VideoEffectObjectInternal.d.ts.map +0 -1
- package/types/ts/Private/ipc/renderer.d.ts.map +0 -1
- package/types/ts/Private/ti/AgoraBase-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/AgoraMediaBase-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraLog-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraMediaEngine-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraRtcEngine-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +0 -1
- package/types/ts/Private/ti/IAudioDeviceManager-ti.d.ts.map +0 -1
- package/types/ts/Renderer/AgoraView.d.ts.map +0 -1
- package/types/ts/Renderer/CapabilityManager.d.ts.map +0 -1
- package/types/ts/Renderer/IRenderer.d.ts.map +0 -1
- package/types/ts/Renderer/IRendererCache.d.ts.map +0 -1
- package/types/ts/Renderer/RendererCache.d.ts.map +0 -1
- package/types/ts/Renderer/RendererManager.d.ts.map +0 -1
- package/types/ts/Renderer/WebCodecsRenderer/index.d.ts.map +0 -1
- package/types/ts/Renderer/WebCodecsRendererCache.d.ts.map +0 -1
- package/types/ts/Renderer/WebGLRenderer/index.d.ts.map +0 -1
- package/types/ts/Renderer/WebGLRenderer/webgl-utils.d.ts.map +0 -1
- package/types/ts/Renderer/YUVCanvasRenderer/index.d.ts.map +0 -1
- package/types/ts/Renderer/index.d.ts.map +0 -1
- package/types/ts/Types.d.ts.map +0 -1
- package/types/ts/Utils.d.ts.map +0 -1
- /package/js/{ts/AgoraSdk.js → AgoraSdk.js} +0 -0
- /package/js/{ts/Decoder → Decoder}/gpu-utils.js +0 -0
- /package/js/{ts/Decoder → Decoder}/index.js +0 -0
- /package/js/{ts/Private → Private}/AgoraBase.js +0 -0
- /package/js/{ts/Private → Private}/AgoraMediaBase.js +0 -0
- /package/js/{ts/Private → Private}/AgoraMediaPlayerTypes.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraH265Transcoder.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraLog.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraMediaEngine.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraMediaPlayer.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraMediaPlayerSource.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraMediaRecorder.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraMediaStreamingSource.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraMusicContentCenter.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraRhythmPlayer.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraRtcEngine.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraRtcEngineEx.js +0 -0
- /package/js/{ts/Private → Private}/IAgoraSpatialAudio.js +0 -0
- /package/js/{ts/Private → Private}/IAudioDeviceManager.js +0 -0
- /package/js/{ts/Private → Private}/extension/AgoraBaseExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/AgoraMediaBaseExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/AgoraMediaPlayerTypesExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraH265TranscoderExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraLogExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraMediaEngineExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraMediaPlayerExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraMediaPlayerSourceExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraMediaRecorderExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraMusicContentCenterExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraRhythmPlayerExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraRtcEngineExExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraRtcEngineExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAgoraSpatialAudioExtension.js +0 -0
- /package/js/{ts/Private → Private}/extension/IAudioDeviceManagerExtension.js +0 -0
- /package/js/{ts/Private → Private}/impl/AgoraBaseImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/AgoraMediaBaseImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraH265TranscoderImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraMediaEngineImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraMediaPlayerImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraMediaPlayerSourceImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraMediaRecorderImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraMusicContentCenterImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraRtcEngineExImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraRtcEngineImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAgoraSpatialAudioImpl.js +0 -0
- /package/js/{ts/Private → Private}/impl/IAudioDeviceManagerImpl.js +0 -0
- /package/js/{ts/Private → Private}/internal/AgoraMediaBaseInternal.js +0 -0
- /package/js/{ts/Private → Private}/internal/AudioDeviceManagerInternal.js +0 -0
- /package/js/{ts/Private → Private}/internal/LocalSpatialAudioEngineInternal.js +0 -0
- /package/js/{ts/Private → Private}/internal/VideoEffectObjectInternal.js +0 -0
- /package/js/{ts/Private → Private}/ipc/main.js +0 -0
- /package/js/{ts/Private → Private}/ipc/renderer.js +0 -0
- /package/js/{ts/Private → Private}/ti/AgoraBase-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/AgoraMediaBase-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/AgoraMediaPlayerTypes-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraH265Transcoder-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraLog-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraMediaEngine-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraMediaPlayer-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraMediaPlayerSource-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraMediaRecorder-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraMediaStreamingSource-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraMusicContentCenter-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraRhythmPlayer-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraRtcEngine-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraRtcEngineEx-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAgoraSpatialAudio-ti.js +0 -0
- /package/js/{ts/Private → Private}/ti/IAudioDeviceManager-ti.js +0 -0
- /package/js/{ts/Renderer → Renderer}/AgoraView.js +0 -0
- /package/js/{ts/Renderer → Renderer}/CapabilityManager.js +0 -0
- /package/js/{ts/Renderer → Renderer}/IRenderer.js +0 -0
- /package/js/{ts/Renderer → Renderer}/IRendererCache.js +0 -0
- /package/js/{ts/Renderer → Renderer}/RendererManager.js +0 -0
- /package/js/{ts/Renderer → Renderer}/WebCodecsRenderer/index.js +0 -0
- /package/js/{ts/Renderer → Renderer}/WebCodecsRendererCache.js +0 -0
- /package/js/{ts/Renderer → Renderer}/WebGLRenderer/index.js +0 -0
- /package/js/{ts/Renderer → Renderer}/WebGLRenderer/webgl-utils.js +0 -0
- /package/js/{ts/Renderer → Renderer}/YUVCanvasRenderer/index.js +0 -0
- /package/js/{ts/Renderer → Renderer}/index.js +0 -0
- /package/js/{ts/Types.js → Types.js} +0 -0
- /package/js/{ts/Utils.js → Utils.js} +0 -0
- /package/types/{ts/AgoraSdk.d.ts → AgoraSdk.d.ts} +0 -0
- /package/types/{ts/Decoder → Decoder}/gpu-utils.d.ts +0 -0
- /package/types/{ts/Decoder → Decoder}/index.d.ts +0 -0
- /package/types/{ts/Private → Private}/AgoraBase.d.ts +0 -0
- /package/types/{ts/Private → Private}/AgoraMediaBase.d.ts +0 -0
- /package/types/{ts/Private → Private}/AgoraMediaPlayerTypes.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraH265Transcoder.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraLog.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraMediaEngine.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraMediaPlayer.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraMediaPlayerSource.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraMediaRecorder.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraMediaStreamingSource.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraMusicContentCenter.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraRhythmPlayer.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraRtcEngine.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraRtcEngineEx.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAgoraSpatialAudio.d.ts +0 -0
- /package/types/{ts/Private → Private}/IAudioDeviceManager.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/AgoraBaseExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/AgoraMediaBaseExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/AgoraMediaPlayerTypesExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraH265TranscoderExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraLogExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraMediaEngineExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraMediaPlayerExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraMediaPlayerSourceExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraMediaRecorderExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraMusicContentCenterExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraRhythmPlayerExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraRtcEngineExExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraRtcEngineExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAgoraSpatialAudioExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/extension/IAudioDeviceManagerExtension.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/AgoraBaseImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/AgoraMediaBaseImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraH265TranscoderImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraMediaEngineImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraMediaPlayerImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraMediaPlayerSourceImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraMediaRecorderImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraMusicContentCenterImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraRtcEngineExImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraRtcEngineImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAgoraSpatialAudioImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/impl/IAudioDeviceManagerImpl.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/AgoraH265TranscoderInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/AgoraMediaBaseInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/AudioDeviceManagerInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/LocalSpatialAudioEngineInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/MediaEngineInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/MediaPlayerInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/MediaRecorderInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/MusicContentCenterInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/RtcEngineExInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/internal/VideoEffectObjectInternal.d.ts +0 -0
- /package/types/{ts/Private → Private}/ipc/main.d.ts +0 -0
- /package/types/{ts/Private → Private}/ipc/renderer.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/AgoraBase-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/AgoraMediaBase-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/AgoraMediaPlayerTypes-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraH265Transcoder-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraLog-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraMediaEngine-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraMediaPlayer-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraMediaPlayerSource-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraMediaRecorder-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraMediaStreamingSource-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraMusicContentCenter-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraRhythmPlayer-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraRtcEngine-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraRtcEngineEx-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAgoraSpatialAudio-ti.d.ts +0 -0
- /package/types/{ts/Private → Private}/ti/IAudioDeviceManager-ti.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/AgoraView.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/CapabilityManager.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/IRenderer.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/IRendererCache.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/RendererCache.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/RendererManager.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/WebCodecsRenderer/index.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/WebCodecsRendererCache.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/WebGLRenderer/index.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/WebGLRenderer/webgl-utils.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/YUVCanvasRenderer/index.d.ts +0 -0
- /package/types/{ts/Renderer → Renderer}/index.d.ts +0 -0
- /package/types/{ts/Types.d.ts → Types.d.ts} +0 -0
- /package/types/{ts/Utils.d.ts → Utils.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [4.5.3](https://github.com/AgoraIO-Extensions/Electron-SDK/compare/v4.5.3-dev.3...v4.5.3) (2026-04-28)
|
|
4
|
+
|
|
5
|
+
## [4.5.3-dev.3](https://github.com/AgoraIO-Extensions/Electron-SDK/compare/v4.5.3-dev.2...v4.5.3-dev.3) (2026-04-03)
|
|
6
|
+
|
|
3
7
|
## [4.5.3-dev.2](https://github.com/AgoraIO-Extensions/Electron-SDK/compare/v4.5.3-dev.1...v4.5.3-dev.2) (2026-04-03)
|
|
4
8
|
|
|
5
9
|
## [4.5.3-dev.1](https://github.com/AgoraIO-Extensions/Electron-SDK/compare/v4.5.2-build.9-rc.1...v4.5.3-dev.1) (2026-04-03)
|
|
@@ -36,15 +36,13 @@ class H265TranscoderInternal extends IAgoraH265TranscoderImpl_1.IH265TranscoderI
|
|
|
36
36
|
};
|
|
37
37
|
// @ts-ignore
|
|
38
38
|
listener.agoraCallback = callback;
|
|
39
|
-
IrisApiEngine_1.
|
|
39
|
+
(0, IrisApiEngine_1.addScopedEventListener)(this, eventType, listener, callback);
|
|
40
40
|
}
|
|
41
41
|
removeListener(eventType, listener) {
|
|
42
|
-
IrisApiEngine_1.
|
|
43
|
-
// @ts-ignore
|
|
44
|
-
listener?.agoraCallback ?? listener);
|
|
42
|
+
(0, IrisApiEngine_1.removeScopedEventListener)(this, eventType, listener);
|
|
45
43
|
}
|
|
46
44
|
removeAllListeners(eventType) {
|
|
47
|
-
IrisApiEngine_1.
|
|
45
|
+
(0, IrisApiEngine_1.removeAllScopedEventListeners)(this, eventType);
|
|
48
46
|
}
|
|
49
47
|
registerTranscoderObserver(observer) {
|
|
50
48
|
if (!H265TranscoderInternal._h265_transcoder_observers.find((value) => value === observer)) {
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.emitEvent = exports.callIrisApi = exports.EVENT_PROCESSORS = exports.EVENT_TYPE = exports.isDebuggable = exports.setDebuggable = exports.AgoraElectronBridge = exports.DeviceEventEmitter = void 0;
|
|
6
|
+
exports.emitEvent = exports.callIrisApi = exports.EVENT_PROCESSORS = exports.EVENT_TYPE = exports.isDebuggable = exports.setDebuggable = exports.AgoraElectronBridge = exports.removeAllScopedEventListeners = exports.removeScopedEventListener = exports.addScopedEventListener = exports.DeviceEventEmitter = void 0;
|
|
7
7
|
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
8
8
|
const json_bigint_1 = __importDefault(require("json-bigint"));
|
|
9
9
|
const JSON = (0, json_bigint_1.default)({ storeAsString: true });
|
|
@@ -26,6 +26,76 @@ const MusicContentCenterInternal_1 = require("./MusicContentCenterInternal");
|
|
|
26
26
|
const RtcEngineExInternal_1 = require("./RtcEngineExInternal");
|
|
27
27
|
// @ts-ignore
|
|
28
28
|
exports.DeviceEventEmitter = new eventemitter3_1.default();
|
|
29
|
+
const ScopedDeviceEventListeners = new WeakMap();
|
|
30
|
+
function getScopedListenerMap(owner) {
|
|
31
|
+
let scopedListeners = ScopedDeviceEventListeners.get(owner);
|
|
32
|
+
if (scopedListeners === undefined) {
|
|
33
|
+
scopedListeners = new Map();
|
|
34
|
+
ScopedDeviceEventListeners.set(owner, scopedListeners);
|
|
35
|
+
}
|
|
36
|
+
return scopedListeners;
|
|
37
|
+
}
|
|
38
|
+
function cleanupScopedListenerMap(owner, scopedListeners) {
|
|
39
|
+
if (scopedListeners.size === 0) {
|
|
40
|
+
ScopedDeviceEventListeners.delete(owner);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function addScopedEventListener(owner, eventType, listener, callback) {
|
|
44
|
+
const scopedListeners = getScopedListenerMap(owner);
|
|
45
|
+
const listeners = scopedListeners.get(eventType) ?? [];
|
|
46
|
+
listeners.push({ listener, callback });
|
|
47
|
+
scopedListeners.set(eventType, listeners);
|
|
48
|
+
exports.DeviceEventEmitter.addListener(eventType, callback);
|
|
49
|
+
}
|
|
50
|
+
exports.addScopedEventListener = addScopedEventListener;
|
|
51
|
+
function removeScopedEventListener(owner, eventType, listener) {
|
|
52
|
+
if (listener === undefined) {
|
|
53
|
+
removeAllScopedEventListeners(owner, eventType);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const scopedListeners = ScopedDeviceEventListeners.get(owner);
|
|
57
|
+
if (scopedListeners === undefined) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const listeners = scopedListeners.get(eventType) ?? [];
|
|
61
|
+
const index = listeners.findIndex((record) => record.listener === listener);
|
|
62
|
+
if (index === -1) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const [record] = listeners.splice(index, 1);
|
|
66
|
+
exports.DeviceEventEmitter.removeListener(eventType, record.callback);
|
|
67
|
+
if (listeners.length === 0) {
|
|
68
|
+
scopedListeners.delete(eventType);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
scopedListeners.set(eventType, listeners);
|
|
72
|
+
}
|
|
73
|
+
cleanupScopedListenerMap(owner, scopedListeners);
|
|
74
|
+
}
|
|
75
|
+
exports.removeScopedEventListener = removeScopedEventListener;
|
|
76
|
+
function removeAllScopedEventListeners(owner, eventType) {
|
|
77
|
+
const scopedListeners = ScopedDeviceEventListeners.get(owner);
|
|
78
|
+
if (scopedListeners === undefined) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (eventType !== undefined) {
|
|
82
|
+
const listeners = scopedListeners.get(eventType) ?? [];
|
|
83
|
+
listeners.forEach((record) => {
|
|
84
|
+
exports.DeviceEventEmitter.removeListener(eventType, record.callback);
|
|
85
|
+
});
|
|
86
|
+
scopedListeners.delete(eventType);
|
|
87
|
+
cleanupScopedListenerMap(owner, scopedListeners);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
scopedListeners.forEach((listeners, currentEventType) => {
|
|
91
|
+
listeners.forEach((record) => {
|
|
92
|
+
exports.DeviceEventEmitter.removeListener(currentEventType, record.callback);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
scopedListeners.clear();
|
|
96
|
+
ScopedDeviceEventListeners.delete(owner);
|
|
97
|
+
}
|
|
98
|
+
exports.removeAllScopedEventListeners = removeAllScopedEventListeners;
|
|
29
99
|
const AgoraNode = require('../../../build/Release/agora_node_ext');
|
|
30
100
|
exports.AgoraElectronBridge = new AgoraNode.AgoraElectronBridge();
|
|
31
101
|
exports.AgoraElectronBridge.OnEvent('call_back_with_buffer', (...params) => {
|
|
@@ -201,19 +271,6 @@ exports.EVENT_PROCESSORS = {
|
|
|
201
271
|
case 'onStreamMessageEx':
|
|
202
272
|
data.data = buffers[0];
|
|
203
273
|
break;
|
|
204
|
-
case 'onLocalVideoStats':
|
|
205
|
-
if (data) {
|
|
206
|
-
let rendererManager = Utils_1.AgoraEnv.AgoraRendererManager;
|
|
207
|
-
if (rendererManager) {
|
|
208
|
-
let sourceType = data.sourceType;
|
|
209
|
-
let connection = data.connection;
|
|
210
|
-
let rendererCaches = rendererManager.getRendererCachesBySourceType(sourceType);
|
|
211
|
-
rendererCaches.forEach((cache) => {
|
|
212
|
-
cache.setCallbackContext(connection, sourceType);
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
break;
|
|
217
274
|
case 'onRemoteVideoStats':
|
|
218
275
|
if (data) {
|
|
219
276
|
let rendererManager = Utils_1.AgoraEnv.AgoraRendererManager;
|
|
@@ -104,15 +104,13 @@ class MediaEngineInternal extends IAgoraMediaEngineImpl_1.IMediaEngineImpl {
|
|
|
104
104
|
};
|
|
105
105
|
// @ts-ignore
|
|
106
106
|
listener.agoraCallback = callback;
|
|
107
|
-
IrisApiEngine_1.
|
|
107
|
+
(0, IrisApiEngine_1.addScopedEventListener)(this, eventType, listener, callback);
|
|
108
108
|
}
|
|
109
109
|
removeListener(eventType, listener) {
|
|
110
|
-
IrisApiEngine_1.
|
|
111
|
-
// @ts-ignore
|
|
112
|
-
listener?.agoraCallback ?? listener);
|
|
110
|
+
(0, IrisApiEngine_1.removeScopedEventListener)(this, eventType, listener);
|
|
113
111
|
}
|
|
114
112
|
removeAllListeners(eventType) {
|
|
115
|
-
IrisApiEngine_1.
|
|
113
|
+
(0, IrisApiEngine_1.removeAllScopedEventListeners)(this, eventType);
|
|
116
114
|
}
|
|
117
115
|
}
|
|
118
116
|
exports.MediaEngineInternal = MediaEngineInternal;
|
|
@@ -77,15 +77,13 @@ class MediaPlayerInternal extends IAgoraMediaPlayerImpl_1.IMediaPlayerImpl {
|
|
|
77
77
|
};
|
|
78
78
|
// @ts-ignore
|
|
79
79
|
listener.agoraCallback = callback;
|
|
80
|
-
IrisApiEngine_1.
|
|
80
|
+
(0, IrisApiEngine_1.addScopedEventListener)(this, eventType, listener, callback);
|
|
81
81
|
}
|
|
82
82
|
removeListener(eventType, listener) {
|
|
83
|
-
IrisApiEngine_1.
|
|
84
|
-
// @ts-ignore
|
|
85
|
-
listener?.agoraCallback ?? listener);
|
|
83
|
+
(0, IrisApiEngine_1.removeScopedEventListener)(this, eventType, listener);
|
|
86
84
|
}
|
|
87
85
|
removeAllListeners(eventType) {
|
|
88
|
-
IrisApiEngine_1.
|
|
86
|
+
(0, IrisApiEngine_1.removeAllScopedEventListeners)(this, eventType);
|
|
89
87
|
}
|
|
90
88
|
getMediaPlayerId() {
|
|
91
89
|
return this._mediaPlayerId;
|
|
@@ -24,7 +24,8 @@ class MediaRecorderInternal extends IAgoraMediaRecorderImpl_1.IMediaRecorderImpl
|
|
|
24
24
|
}
|
|
25
25
|
setMediaRecorderObserver(callback) {
|
|
26
26
|
const key = this._nativeHandle;
|
|
27
|
-
|
|
27
|
+
const currentObserver = MediaRecorderInternal._observers.get(key);
|
|
28
|
+
if (currentObserver === callback) {
|
|
28
29
|
return AgoraBase_1.ErrorCodeType.ErrOk;
|
|
29
30
|
}
|
|
30
31
|
MediaRecorderInternal._observers.set(key, callback);
|
|
@@ -55,15 +56,13 @@ class MediaRecorderInternal extends IAgoraMediaRecorderImpl_1.IMediaRecorderImpl
|
|
|
55
56
|
};
|
|
56
57
|
// @ts-ignore
|
|
57
58
|
listener.agoraCallback = callback;
|
|
58
|
-
IrisApiEngine_1.
|
|
59
|
+
(0, IrisApiEngine_1.addScopedEventListener)(this, eventType, listener, callback);
|
|
59
60
|
}
|
|
60
61
|
removeListener(eventType, listener) {
|
|
61
|
-
IrisApiEngine_1.
|
|
62
|
-
// @ts-ignore
|
|
63
|
-
listener?.agoraCallback ?? listener);
|
|
62
|
+
(0, IrisApiEngine_1.removeScopedEventListener)(this, eventType, listener);
|
|
64
63
|
}
|
|
65
64
|
removeAllListeners(eventType) {
|
|
66
|
-
IrisApiEngine_1.
|
|
65
|
+
(0, IrisApiEngine_1.removeAllScopedEventListeners)(this, eventType);
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
exports.MediaRecorderInternal = MediaRecorderInternal;
|
|
@@ -34,15 +34,13 @@ class MusicContentCenterInternal extends IAgoraMusicContentCenterImpl_1.IMusicCo
|
|
|
34
34
|
};
|
|
35
35
|
// @ts-ignore
|
|
36
36
|
listener.agoraCallback = callback;
|
|
37
|
-
IrisApiEngine_1.
|
|
37
|
+
(0, IrisApiEngine_1.addScopedEventListener)(this, eventType, listener, callback);
|
|
38
38
|
}
|
|
39
39
|
removeListener(eventType, listener) {
|
|
40
|
-
IrisApiEngine_1.
|
|
41
|
-
// @ts-ignore
|
|
42
|
-
listener?.agoraCallback ?? listener);
|
|
40
|
+
(0, IrisApiEngine_1.removeScopedEventListener)(this, eventType, listener);
|
|
43
41
|
}
|
|
44
42
|
removeAllListeners(eventType) {
|
|
45
|
-
IrisApiEngine_1.
|
|
43
|
+
(0, IrisApiEngine_1.removeAllScopedEventListeners)(this, eventType);
|
|
46
44
|
}
|
|
47
45
|
registerEventHandler(eventHandler) {
|
|
48
46
|
if (!MusicContentCenterInternal._event_handlers.find((value) => value === eventHandler)) {
|
|
@@ -69,38 +69,62 @@ class RtcEngineExInternal extends IAgoraRtcEngineExImpl_1.IRtcEngineExImpl {
|
|
|
69
69
|
try {
|
|
70
70
|
this.performanceIntervalFunc = setInterval(() => {
|
|
71
71
|
let rendererManager = Utils_1.AgoraEnv.AgoraRendererManager;
|
|
72
|
-
let
|
|
72
|
+
let remoteCounters = [];
|
|
73
|
+
let localCounters = [];
|
|
73
74
|
if (rendererManager) {
|
|
74
75
|
rendererManager.getRendererCaches().forEach((cache) => {
|
|
75
|
-
const isRemote = cache.callbackContext
|
|
76
|
+
const isRemote = cache.callbackContext?.sourceType ===
|
|
76
77
|
AgoraMediaBase_1.VideoSourceType.VideoSourceRemote;
|
|
77
|
-
if (
|
|
78
|
-
(cache.callbackContext.connection?.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
if (isRemote) {
|
|
79
|
+
if (cache.callbackContext.connection?.channelId &&
|
|
80
|
+
cache.callbackContext.connection?.localUid) {
|
|
81
|
+
let counter = remoteCounters.find((counter) => counter.connection.channelId ===
|
|
82
|
+
cache.callbackContext.connection.channelId &&
|
|
83
|
+
counter.connection.localUid ===
|
|
84
|
+
cache.callbackContext.connection.localUid);
|
|
85
|
+
let data = {
|
|
86
|
+
counters: [
|
|
87
|
+
{
|
|
88
|
+
counterId: this.VideoRemoteRenderMeanFpsCounterId,
|
|
89
|
+
value: Math.floor(cache.actualFps),
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
counterId: this.VideoRemoteRenderDrawCostCounterId,
|
|
93
|
+
value: Math.floor(cache.avgFrameInterval),
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
uid: cache.cacheContext.uid,
|
|
97
|
+
};
|
|
98
|
+
if (!counter) {
|
|
99
|
+
remoteCounters.push({
|
|
100
|
+
data: [data],
|
|
101
|
+
connection: cache.callbackContext.connection,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
counter.data.push(data);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
let counter = localCounters.find((counter) => counter.videoSourceType === cache.cacheContext.sourceType);
|
|
83
111
|
let data = {
|
|
84
112
|
counters: [
|
|
85
113
|
{
|
|
86
|
-
counterId:
|
|
87
|
-
? this.VideoRemoteRenderMeanFpsCounterId
|
|
88
|
-
: this.VideoLocalRenderMeanFpsCounterId,
|
|
114
|
+
counterId: this.VideoLocalRenderMeanFpsCounterId,
|
|
89
115
|
value: Math.floor(cache.actualFps),
|
|
90
116
|
},
|
|
91
117
|
{
|
|
92
|
-
counterId:
|
|
93
|
-
? this.VideoRemoteRenderDrawCostCounterId
|
|
94
|
-
: this.VideoLocalRenderDrawCostCounterId,
|
|
118
|
+
counterId: this.VideoLocalRenderDrawCostCounterId,
|
|
95
119
|
value: Math.floor(cache.avgFrameInterval),
|
|
96
120
|
},
|
|
97
121
|
],
|
|
98
|
-
uid:
|
|
122
|
+
uid: cache.cacheContext.uid,
|
|
99
123
|
};
|
|
100
124
|
if (!counter) {
|
|
101
|
-
|
|
125
|
+
localCounters.push({
|
|
102
126
|
data: [data],
|
|
103
|
-
|
|
127
|
+
videoSourceType: cache.cacheContext.sourceType,
|
|
104
128
|
});
|
|
105
129
|
}
|
|
106
130
|
else {
|
|
@@ -109,6 +133,7 @@ class RtcEngineExInternal extends IAgoraRtcEngineExImpl_1.IRtcEngineExImpl {
|
|
|
109
133
|
}
|
|
110
134
|
});
|
|
111
135
|
}
|
|
136
|
+
const counters = [...remoteCounters, ...localCounters];
|
|
112
137
|
counters.forEach((counter) => {
|
|
113
138
|
this.setParameters(JSON.stringify({ 'rtc.report.argus_counters': counter }));
|
|
114
139
|
});
|
|
@@ -201,15 +226,13 @@ class RtcEngineExInternal extends IAgoraRtcEngineExImpl_1.IRtcEngineExImpl {
|
|
|
201
226
|
};
|
|
202
227
|
// @ts-ignore
|
|
203
228
|
listener.agoraCallback = callback;
|
|
204
|
-
IrisApiEngine_2.
|
|
229
|
+
(0, IrisApiEngine_2.addScopedEventListener)(this, eventType, listener, callback);
|
|
205
230
|
}
|
|
206
231
|
removeListener(eventType, listener) {
|
|
207
|
-
IrisApiEngine_2.
|
|
208
|
-
// @ts-ignore
|
|
209
|
-
listener?.agoraCallback ?? listener);
|
|
232
|
+
(0, IrisApiEngine_2.removeScopedEventListener)(this, eventType, listener);
|
|
210
233
|
}
|
|
211
234
|
removeAllListeners(eventType) {
|
|
212
|
-
IrisApiEngine_2.
|
|
235
|
+
(0, IrisApiEngine_2.removeAllScopedEventListeners)(this, eventType);
|
|
213
236
|
}
|
|
214
237
|
getVersion() {
|
|
215
238
|
const apiType = 'RtcEngine_getVersion_915cb25';
|
|
@@ -104,11 +104,6 @@ class RendererCache extends IRendererCache_1.IRendererCache {
|
|
|
104
104
|
this.videoFrame.alphaBuffer = Buffer.alloc(this.videoFrame.width * this.videoFrame.height);
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
if (hasMoreFrame) {
|
|
108
|
-
this.renderers.forEach((renderer) => {
|
|
109
|
-
renderer.drawFrame(this.cacheContext.uid, this.videoFrame);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
107
|
return { hasMoreFrame, needRender };
|
|
113
108
|
}
|
|
114
109
|
addRenderer(renderer) {
|
|
@@ -207,22 +202,12 @@ class RendererCache extends IRendererCache_1.IRendererCache {
|
|
|
207
202
|
}
|
|
208
203
|
// 记录当前时间作为本次循环的开始时间
|
|
209
204
|
this._lastRenderTime = currentTime;
|
|
210
|
-
//
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
let { hasMoreFrame, needRender } = this.fetchVideoFrame();
|
|
205
|
+
// Fetch at most one frame per tick and render it once. When frames pile
|
|
206
|
+
// up, favor UI responsiveness over draining the entire backlog.
|
|
207
|
+
const { needRender } = this.fetchVideoFrame();
|
|
214
208
|
if (needRender) {
|
|
215
209
|
this.renderFrame();
|
|
216
210
|
}
|
|
217
|
-
// 如果hasMoreFrame为true,表示还有更多帧需要获取
|
|
218
|
-
while (hasMoreFrame) {
|
|
219
|
-
// 获取下一帧
|
|
220
|
-
let { hasMoreFrame: nextHasMoreFrame, needRender } = this.fetchVideoFrame();
|
|
221
|
-
hasMoreFrame = nextHasMoreFrame;
|
|
222
|
-
if (needRender) {
|
|
223
|
-
this.renderFrame();
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
211
|
// 安排下一帧
|
|
227
212
|
this._renderingTimer = window.setTimeout(renderingLooper, 0);
|
|
228
213
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agora-electron-sdk",
|
|
3
|
-
"version": "4.5.3
|
|
3
|
+
"version": "4.5.3",
|
|
4
4
|
"description": "agora-electron-sdk",
|
|
5
5
|
"main": "js/AgoraSdk",
|
|
6
6
|
"types": "types/AgoraSdk.d.ts",
|
|
@@ -160,9 +160,9 @@
|
|
|
160
160
|
"pify": "^4.0.1"
|
|
161
161
|
},
|
|
162
162
|
"agora_electron": {
|
|
163
|
-
"iris_sdk_win": "https://download.agora.io/sdk/release/iris_4.5.3-
|
|
164
|
-
"iris_sdk_mac": "https://download.agora.io/sdk/release/iris_4.5.3-
|
|
165
|
-
"native_sdk_win": "https://download.agora.io/sdk/release/
|
|
166
|
-
"native_sdk_mac": "https://download.agora.io/sdk/release/
|
|
163
|
+
"iris_sdk_win": "https://download.agora.io/sdk/release/iris_4.5.3-build.1_DCG_Windows_Video_Standalone_20260428_1050_31959.zip",
|
|
164
|
+
"iris_sdk_mac": "https://download.agora.io/sdk/release/iris_4.5.3-build.1_DCG_Mac_Video_Standalone_20260428_1052_32896.zip",
|
|
165
|
+
"native_sdk_win": "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_rel.v4.5.3.70_32091_FULL_20260416_1933_1076734.zip",
|
|
166
|
+
"native_sdk_mac": "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Mac_rel.v4.5.3.70_27430_FULL_20260416_1933_1076735.zip"
|
|
167
167
|
}
|
|
168
168
|
}
|
|
@@ -9,9 +9,11 @@ import IAgoraH265TranscoderTI from '../ti/IAgoraH265Transcoder-ti';
|
|
|
9
9
|
const checkers = createCheckers(IAgoraH265TranscoderTI);
|
|
10
10
|
|
|
11
11
|
import {
|
|
12
|
-
DeviceEventEmitter,
|
|
13
12
|
EVENT_TYPE,
|
|
14
13
|
EventProcessor,
|
|
14
|
+
addScopedEventListener,
|
|
15
|
+
removeAllScopedEventListeners,
|
|
16
|
+
removeScopedEventListener,
|
|
15
17
|
} from './IrisApiEngine';
|
|
16
18
|
|
|
17
19
|
export class H265TranscoderInternal extends IH265TranscoderImpl {
|
|
@@ -52,24 +54,24 @@ export class H265TranscoderInternal extends IH265TranscoderImpl {
|
|
|
52
54
|
};
|
|
53
55
|
// @ts-ignore
|
|
54
56
|
listener!.agoraCallback = callback;
|
|
55
|
-
|
|
57
|
+
addScopedEventListener(this, eventType, listener as Function, callback);
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
removeListener<EventType extends keyof IH265TranscoderEvent>(
|
|
59
61
|
eventType: EventType,
|
|
60
62
|
listener?: IH265TranscoderEvent[EventType]
|
|
61
63
|
) {
|
|
62
|
-
|
|
64
|
+
removeScopedEventListener(
|
|
65
|
+
this,
|
|
63
66
|
eventType,
|
|
64
|
-
|
|
65
|
-
listener?.agoraCallback ?? listener
|
|
67
|
+
listener as Function | undefined
|
|
66
68
|
);
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
removeAllListeners<EventType extends keyof IH265TranscoderEvent>(
|
|
70
72
|
eventType?: EventType
|
|
71
73
|
) {
|
|
72
|
-
|
|
74
|
+
removeAllScopedEventListeners(this, eventType);
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
override registerTranscoderObserver(
|
|
@@ -71,6 +71,110 @@ import { VideoEffectObjectInternal } from './VideoEffectObjectInternal';
|
|
|
71
71
|
// @ts-ignore
|
|
72
72
|
export const DeviceEventEmitter: EventEmitter = new EventEmitter();
|
|
73
73
|
|
|
74
|
+
type DeviceEventListener = (...args: any[]) => void;
|
|
75
|
+
type ListenerRecord = {
|
|
76
|
+
listener: Function;
|
|
77
|
+
callback: DeviceEventListener;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const ScopedDeviceEventListeners = new WeakMap<
|
|
81
|
+
object,
|
|
82
|
+
Map<string, ListenerRecord[]>
|
|
83
|
+
>();
|
|
84
|
+
|
|
85
|
+
function getScopedListenerMap(owner: object): Map<string, ListenerRecord[]> {
|
|
86
|
+
let scopedListeners = ScopedDeviceEventListeners.get(owner);
|
|
87
|
+
if (scopedListeners === undefined) {
|
|
88
|
+
scopedListeners = new Map<string, ListenerRecord[]>();
|
|
89
|
+
ScopedDeviceEventListeners.set(owner, scopedListeners);
|
|
90
|
+
}
|
|
91
|
+
return scopedListeners;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function cleanupScopedListenerMap(
|
|
95
|
+
owner: object,
|
|
96
|
+
scopedListeners: Map<string, ListenerRecord[]>
|
|
97
|
+
) {
|
|
98
|
+
if (scopedListeners.size === 0) {
|
|
99
|
+
ScopedDeviceEventListeners.delete(owner);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function addScopedEventListener(
|
|
104
|
+
owner: object,
|
|
105
|
+
eventType: string,
|
|
106
|
+
listener: Function,
|
|
107
|
+
callback: DeviceEventListener
|
|
108
|
+
) {
|
|
109
|
+
const scopedListeners = getScopedListenerMap(owner);
|
|
110
|
+
const listeners = scopedListeners.get(eventType) ?? [];
|
|
111
|
+
|
|
112
|
+
listeners.push({ listener, callback });
|
|
113
|
+
scopedListeners.set(eventType, listeners);
|
|
114
|
+
DeviceEventEmitter.addListener(eventType, callback);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function removeScopedEventListener(
|
|
118
|
+
owner: object,
|
|
119
|
+
eventType: string,
|
|
120
|
+
listener?: Function
|
|
121
|
+
) {
|
|
122
|
+
if (listener === undefined) {
|
|
123
|
+
removeAllScopedEventListeners(owner, eventType);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const scopedListeners = ScopedDeviceEventListeners.get(owner);
|
|
128
|
+
if (scopedListeners === undefined) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const listeners = scopedListeners.get(eventType) ?? [];
|
|
133
|
+
const index = listeners.findIndex((record) => record.listener === listener);
|
|
134
|
+
|
|
135
|
+
if (index === -1) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const [record] = listeners.splice(index, 1);
|
|
140
|
+
DeviceEventEmitter.removeListener(eventType, record!.callback);
|
|
141
|
+
|
|
142
|
+
if (listeners.length === 0) {
|
|
143
|
+
scopedListeners.delete(eventType);
|
|
144
|
+
} else {
|
|
145
|
+
scopedListeners.set(eventType, listeners);
|
|
146
|
+
}
|
|
147
|
+
cleanupScopedListenerMap(owner, scopedListeners);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export function removeAllScopedEventListeners(
|
|
151
|
+
owner: object,
|
|
152
|
+
eventType?: string
|
|
153
|
+
) {
|
|
154
|
+
const scopedListeners = ScopedDeviceEventListeners.get(owner);
|
|
155
|
+
if (scopedListeners === undefined) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (eventType !== undefined) {
|
|
160
|
+
const listeners = scopedListeners.get(eventType) ?? [];
|
|
161
|
+
listeners.forEach((record) => {
|
|
162
|
+
DeviceEventEmitter.removeListener(eventType, record.callback);
|
|
163
|
+
});
|
|
164
|
+
scopedListeners.delete(eventType);
|
|
165
|
+
cleanupScopedListenerMap(owner, scopedListeners);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
scopedListeners.forEach((listeners, currentEventType) => {
|
|
170
|
+
listeners.forEach((record) => {
|
|
171
|
+
DeviceEventEmitter.removeListener(currentEventType, record.callback);
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
scopedListeners.clear();
|
|
175
|
+
ScopedDeviceEventListeners.delete(owner);
|
|
176
|
+
}
|
|
177
|
+
|
|
74
178
|
const AgoraNode = require('../../../build/Release/agora_node_ext');
|
|
75
179
|
export const AgoraElectronBridge: IAgoraElectronBridge =
|
|
76
180
|
new AgoraNode.AgoraElectronBridge();
|
|
@@ -345,20 +449,6 @@ export const EVENT_PROCESSORS: EventProcessors = {
|
|
|
345
449
|
case 'onStreamMessageEx':
|
|
346
450
|
data.data = buffers[0];
|
|
347
451
|
break;
|
|
348
|
-
case 'onLocalVideoStats':
|
|
349
|
-
if (data) {
|
|
350
|
-
let rendererManager = AgoraEnv.AgoraRendererManager;
|
|
351
|
-
if (rendererManager) {
|
|
352
|
-
let sourceType = (data as any).sourceType;
|
|
353
|
-
let connection = (data as any).connection;
|
|
354
|
-
let rendererCaches =
|
|
355
|
-
rendererManager.getRendererCachesBySourceType(sourceType);
|
|
356
|
-
rendererCaches.forEach((cache) => {
|
|
357
|
-
cache.setCallbackContext(connection, sourceType);
|
|
358
|
-
});
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
break;
|
|
362
452
|
case 'onRemoteVideoStats':
|
|
363
453
|
if (data) {
|
|
364
454
|
let rendererManager = AgoraEnv.AgoraRendererManager;
|
|
@@ -12,9 +12,11 @@ import AgoraMediaBaseTI from '../ti/AgoraMediaBase-ti';
|
|
|
12
12
|
const checkers = createCheckers(AgoraMediaBaseTI);
|
|
13
13
|
|
|
14
14
|
import {
|
|
15
|
-
DeviceEventEmitter,
|
|
16
15
|
EVENT_TYPE,
|
|
17
16
|
EventProcessor,
|
|
17
|
+
addScopedEventListener,
|
|
18
|
+
removeAllScopedEventListeners,
|
|
19
|
+
removeScopedEventListener,
|
|
18
20
|
} from './IrisApiEngine';
|
|
19
21
|
|
|
20
22
|
export class MediaEngineInternal extends IMediaEngineImpl {
|
|
@@ -168,23 +170,23 @@ export class MediaEngineInternal extends IMediaEngineImpl {
|
|
|
168
170
|
};
|
|
169
171
|
// @ts-ignore
|
|
170
172
|
listener!.agoraCallback = callback;
|
|
171
|
-
|
|
173
|
+
addScopedEventListener(this, eventType, listener as Function, callback);
|
|
172
174
|
}
|
|
173
175
|
|
|
174
176
|
removeListener<EventType extends keyof IMediaEngineEvent>(
|
|
175
177
|
eventType: EventType,
|
|
176
178
|
listener?: IMediaEngineEvent[EventType]
|
|
177
179
|
) {
|
|
178
|
-
|
|
180
|
+
removeScopedEventListener(
|
|
181
|
+
this,
|
|
179
182
|
eventType,
|
|
180
|
-
|
|
181
|
-
listener?.agoraCallback ?? listener
|
|
183
|
+
listener as Function | undefined
|
|
182
184
|
);
|
|
183
185
|
}
|
|
184
186
|
|
|
185
187
|
removeAllListeners<EventType extends keyof IMediaEngineEvent>(
|
|
186
188
|
eventType?: EventType
|
|
187
189
|
) {
|
|
188
|
-
|
|
190
|
+
removeAllScopedEventListeners(this, eventType);
|
|
189
191
|
}
|
|
190
192
|
}
|
|
@@ -23,9 +23,11 @@ const checkers = createCheckers(
|
|
|
23
23
|
);
|
|
24
24
|
|
|
25
25
|
import {
|
|
26
|
-
DeviceEventEmitter,
|
|
27
26
|
EVENT_TYPE,
|
|
28
27
|
EventProcessor,
|
|
28
|
+
addScopedEventListener,
|
|
29
|
+
removeAllScopedEventListeners,
|
|
30
|
+
removeScopedEventListener,
|
|
29
31
|
} from './IrisApiEngine';
|
|
30
32
|
|
|
31
33
|
export class MediaPlayerInternal extends IMediaPlayerImpl {
|
|
@@ -131,24 +133,24 @@ export class MediaPlayerInternal extends IMediaPlayerImpl {
|
|
|
131
133
|
};
|
|
132
134
|
// @ts-ignore
|
|
133
135
|
listener!.agoraCallback = callback;
|
|
134
|
-
|
|
136
|
+
addScopedEventListener(this, eventType, listener as Function, callback);
|
|
135
137
|
}
|
|
136
138
|
|
|
137
139
|
removeListener<EventType extends keyof IMediaPlayerEvent>(
|
|
138
140
|
eventType: EventType,
|
|
139
141
|
listener?: IMediaPlayerEvent[EventType]
|
|
140
142
|
) {
|
|
141
|
-
|
|
143
|
+
removeScopedEventListener(
|
|
144
|
+
this,
|
|
142
145
|
eventType,
|
|
143
|
-
|
|
144
|
-
listener?.agoraCallback ?? listener
|
|
146
|
+
listener as Function | undefined
|
|
145
147
|
);
|
|
146
148
|
}
|
|
147
149
|
|
|
148
150
|
removeAllListeners<EventType extends keyof IMediaPlayerEvent>(
|
|
149
151
|
eventType?: EventType
|
|
150
152
|
) {
|
|
151
|
-
|
|
153
|
+
removeAllScopedEventListeners(this, eventType);
|
|
152
154
|
}
|
|
153
155
|
|
|
154
156
|
override getMediaPlayerId(): number {
|