agora-electron-sdk 4.2.0-dev.5 → 4.2.0-dev.8
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/js/AgoraSdk.js +4 -2
- package/js/Private/AgoraBase.js +1154 -6
- package/js/Private/AgoraMediaBase.js +308 -0
- package/js/Private/AgoraMediaPlayerTypes.js +112 -0
- package/js/Private/IAgoraLog.js +12 -0
- package/js/Private/IAgoraMediaStreamingSource.js +10 -0
- package/js/Private/IAgoraMusicContentCenter.js +104 -0
- package/js/Private/IAgoraRhythmPlayer.js +8 -0
- package/js/Private/IAgoraRtcEngine.js +843 -0
- package/js/Private/IAgoraRtcEngineEx.js +8 -0
- package/js/Private/IAgoraSpatialAudio.js +44 -0
- package/js/Private/impl/IAgoraMediaPlayerImpl.js +59 -59
- package/js/Private/impl/IAgoraRtcEngineImpl.js +55 -46
- package/js/Private/internal/IrisApiEngine.js +7 -12
- package/js/Private/internal/MediaEngineInternal.js +7 -11
- package/js/Private/internal/MediaPlayerInternal.js +22 -20
- package/js/Private/internal/MediaRecorderInternal.js +4 -4
- package/js/Private/internal/MusicContentCenterInternal.js +7 -9
- package/js/Private/internal/RtcEngineExInternal.js +52 -62
- package/js/Renderer/AgoraView.js +21 -24
- package/js/Renderer/IRenderer.js +6 -13
- package/js/Renderer/IRendererManager.js +9 -0
- package/js/Renderer/RendererManager.js +49 -33
- package/js/Renderer/{GlRenderer → WebGLRenderer}/index.js +39 -45
- package/js/Renderer/YUVCanvasRenderer/index.js +8 -7
- package/js/Renderer/index.js +18 -0
- package/js/Utils.js +6 -8
- package/package.json +4 -3
- package/scripts/buildJS.js +1 -2
- package/scripts/getConfig.js +0 -1
- package/ts/AgoraSdk.ts +5 -2
- package/ts/Private/IAgoraMediaPlayer.ts +45 -45
- package/ts/Private/IAgoraRtcEngine.ts +33 -25
- package/ts/Private/impl/IAgoraMediaPlayerImpl.ts +84 -84
- package/ts/Private/impl/IAgoraRtcEngineImpl.ts +75 -65
- package/ts/Private/internal/IrisApiEngine.ts +0 -2
- package/ts/Private/internal/RtcEngineExInternal.ts +23 -12
- package/ts/Renderer/AgoraView.ts +1 -0
- package/ts/Renderer/IRenderer.ts +8 -14
- package/ts/Renderer/IRendererManager.ts +35 -0
- package/ts/Renderer/RendererManager.ts +9 -9
- package/ts/Renderer/{GlRenderer → WebGLRenderer}/index.ts +26 -45
- package/ts/Renderer/YUVCanvasRenderer/index.ts +8 -10
- package/ts/Renderer/index.ts +2 -0
- package/ts/Types.ts +15 -9
- package/ts/Utils.ts +4 -6
- package/types/AgoraSdk.d.ts +4 -2
- package/types/AgoraSdk.d.ts.map +1 -0
- package/types/Private/AgoraBase.d.ts +1 -0
- package/types/Private/AgoraBase.d.ts.map +1 -0
- package/types/Private/AgoraMediaBase.d.ts +1 -0
- package/types/Private/AgoraMediaBase.d.ts.map +1 -0
- package/types/Private/AgoraMediaPlayerTypes.d.ts +1 -0
- package/types/Private/AgoraMediaPlayerTypes.d.ts.map +1 -0
- package/types/Private/IAgoraLog.d.ts +1 -0
- package/types/Private/IAgoraLog.d.ts.map +1 -0
- package/types/Private/IAgoraMediaEngine.d.ts +1 -0
- package/types/Private/IAgoraMediaEngine.d.ts.map +1 -0
- package/types/Private/IAgoraMediaPlayer.d.ts +35 -34
- package/types/Private/IAgoraMediaPlayer.d.ts.map +1 -0
- package/types/Private/IAgoraMediaPlayerSource.d.ts +1 -0
- package/types/Private/IAgoraMediaPlayerSource.d.ts.map +1 -0
- package/types/Private/IAgoraMediaRecorder.d.ts +1 -0
- package/types/Private/IAgoraMediaRecorder.d.ts.map +1 -0
- package/types/Private/IAgoraMediaStreamingSource.d.ts +1 -0
- package/types/Private/IAgoraMediaStreamingSource.d.ts.map +1 -0
- package/types/Private/IAgoraMusicContentCenter.d.ts +1 -0
- package/types/Private/IAgoraMusicContentCenter.d.ts.map +1 -0
- package/types/Private/IAgoraRhythmPlayer.d.ts +1 -0
- package/types/Private/IAgoraRhythmPlayer.d.ts.map +1 -0
- package/types/Private/IAgoraRtcEngine.d.ts +27 -19
- package/types/Private/IAgoraRtcEngine.d.ts.map +1 -0
- package/types/Private/IAgoraRtcEngineEx.d.ts +1 -0
- package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -0
- package/types/Private/IAgoraSpatialAudio.d.ts +1 -0
- package/types/Private/IAgoraSpatialAudio.d.ts.map +1 -0
- package/types/Private/IAudioDeviceManager.d.ts +1 -0
- package/types/Private/IAudioDeviceManager.d.ts.map +1 -0
- package/types/Private/extension/AgoraBaseExtension.d.ts +1 -0
- package/types/Private/extension/AgoraBaseExtension.d.ts.map +1 -0
- package/types/Private/extension/AgoraMediaBaseExtension.d.ts +1 -0
- package/types/Private/extension/AgoraMediaBaseExtension.d.ts.map +1 -0
- package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts +1 -0
- package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraLogExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraLogExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaEngineExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraMediaEngineExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraRtcEngineExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraRtcEngineExtension.d.ts.map +1 -0
- package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts +1 -0
- package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +1 -0
- package/types/Private/extension/IAudioDeviceManagerExtension.d.ts +1 -0
- package/types/Private/extension/IAudioDeviceManagerExtension.d.ts.map +1 -0
- package/types/Private/impl/AgoraBaseImpl.d.ts +1 -0
- package/types/Private/impl/AgoraBaseImpl.d.ts.map +1 -0
- package/types/Private/impl/AgoraMediaBaseImpl.d.ts +1 -0
- package/types/Private/impl/AgoraMediaBaseImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaEngineImpl.d.ts +1 -0
- package/types/Private/impl/IAgoraMediaEngineImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts +9 -8
- package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts +1 -0
- package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts +1 -0
- package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts +1 -0
- package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts +1 -0
- package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraRtcEngineImpl.d.ts +13 -10
- package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -0
- package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts +1 -0
- package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +1 -0
- package/types/Private/impl/IAudioDeviceManagerImpl.d.ts +1 -0
- package/types/Private/impl/IAudioDeviceManagerImpl.d.ts.map +1 -0
- package/types/Private/internal/AudioDeviceManagerInternal.d.ts +1 -0
- package/types/Private/internal/AudioDeviceManagerInternal.d.ts.map +1 -0
- package/types/Private/internal/IrisApiEngine.d.ts +8 -7
- package/types/Private/internal/IrisApiEngine.d.ts.map +1 -0
- package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts +1 -0
- package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaEngineInternal.d.ts +1 -0
- package/types/Private/internal/MediaEngineInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaPlayerInternal.d.ts +1 -0
- package/types/Private/internal/MediaPlayerInternal.d.ts.map +1 -0
- package/types/Private/internal/MediaRecorderInternal.d.ts +1 -0
- package/types/Private/internal/MediaRecorderInternal.d.ts.map +1 -0
- package/types/Private/internal/MusicContentCenterInternal.d.ts +1 -0
- package/types/Private/internal/MusicContentCenterInternal.d.ts.map +1 -0
- package/types/Private/internal/RtcEngineExInternal.d.ts +3 -2
- package/types/Private/internal/RtcEngineExInternal.d.ts.map +1 -0
- package/{js → types}/Private/internal/emitter/EventEmitter.d.ts +1 -0
- package/types/Private/internal/emitter/EventEmitter.d.ts.map +1 -0
- package/types/Private/ti/AgoraBase-ti.d.ts +1 -0
- package/types/Private/ti/AgoraBase-ti.d.ts.map +1 -0
- package/types/Private/ti/AgoraMediaBase-ti.d.ts +1 -0
- package/types/Private/ti/AgoraMediaBase-ti.d.ts.map +1 -0
- package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts +1 -0
- package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraLog-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraLog-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaEngine-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraMediaEngine-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRtcEngine-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraRtcEngine-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +1 -0
- package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts +1 -0
- package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +1 -0
- package/types/Private/ti/IAudioDeviceManager-ti.d.ts +1 -0
- package/types/Private/ti/IAudioDeviceManager-ti.d.ts.map +1 -0
- package/types/Renderer/AgoraView.d.ts +1 -0
- package/types/Renderer/AgoraView.d.ts.map +1 -0
- package/types/Renderer/IRenderer.d.ts +6 -5
- 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 +5 -3
- package/types/Renderer/RendererManager.d.ts.map +1 -0
- package/types/Renderer/{GlRenderer → WebGLRenderer}/index.d.ts +9 -19
- 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 +4 -4
- 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 +15 -9
- package/types/Types.d.ts.map +1 -0
- package/types/Utils.d.ts +1 -0
- package/types/Utils.d.ts.map +1 -0
- package/js/AgoraSdk.d.ts +0 -36
- package/js/Private/AgoraBase.d.ts +0 -4441
- package/js/Private/AgoraMediaBase.d.ts +0 -1124
- package/js/Private/AgoraMediaPlayerTypes.d.ts +0 -408
- package/js/Private/IAgoraLog.d.ts +0 -80
- package/js/Private/IAgoraMediaEngine.d.ts +0 -183
- package/js/Private/IAgoraMediaPlayer.d.ts +0 -532
- package/js/Private/IAgoraMediaPlayerSource.d.ts +0 -82
- package/js/Private/IAgoraMediaRecorder.d.ts +0 -28
- package/js/Private/IAgoraMediaStreamingSource.d.ts +0 -41
- package/js/Private/IAgoraMusicContentCenter.d.ts +0 -335
- package/js/Private/IAgoraRhythmPlayer.d.ts +0 -64
- package/js/Private/IAgoraRtcEngine.d.ts +0 -4947
- package/js/Private/IAgoraRtcEngineEx.d.ts +0 -553
- package/js/Private/IAgoraSpatialAudio.d.ts +0 -265
- package/js/Private/IAudioDeviceManager.d.ts +0 -254
- 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 -44
- 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 -8
- package/js/Private/impl/IAgoraMediaEngineImpl.d.ts +0 -39
- package/js/Private/impl/IAgoraMediaPlayerImpl.d.ts +0 -140
- package/js/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts +0 -2
- package/js/Private/impl/IAgoraMediaRecorderImpl.d.ts +0 -10
- package/js/Private/impl/IAgoraMusicContentCenterImpl.d.ts +0 -58
- package/js/Private/impl/IAgoraRtcEngineExImpl.d.ts +0 -105
- package/js/Private/impl/IAgoraRtcEngineImpl.d.ts +0 -570
- 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 -147
- 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 -17
- package/js/Private/internal/MusicContentCenterInternal.d.ts +0 -39
- package/js/Private/internal/RtcEngineExInternal.d.ts +0 -80
- package/js/Private/ti/AgoraBase-ti.d.ts +0 -7
- package/js/Private/ti/AgoraMediaBase-ti.d.ts +0 -13
- package/js/Private/ti/AgoraMediaPlayerTypes-ti.d.ts +0 -6
- 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 -7
- package/js/Private/ti/IAgoraMediaPlayerSource-ti.d.ts +0 -7
- package/js/Private/ti/IAgoraMediaRecorder-ti.d.ts +0 -6
- package/js/Private/ti/IAgoraMediaStreamingSource-ti.d.ts +0 -6
- 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 -69
- 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 -152
- package/js/Renderer/YUVCanvasRenderer/index.d.ts +0 -16
- package/js/Types.d.ts +0 -271
- package/js/Utils.d.ts +0 -58
- /package/js/Renderer/{GlRenderer → WebGLRenderer}/webgl-utils.js +0 -0
- /package/ts/Renderer/{GlRenderer → WebGLRenderer}/webgl-utils.js +0 -0
|
@@ -531,6 +531,90 @@ export class IMediaPlayerImpl implements IMediaPlayer {
|
|
|
531
531
|
return 'MediaPlayer_unregisterPlayerSourceObserver';
|
|
532
532
|
}
|
|
533
533
|
|
|
534
|
+
registerAudioFrameObserver(
|
|
535
|
+
observer: IAudioPcmFrameSink,
|
|
536
|
+
mode: RawAudioFrameOpModeType = RawAudioFrameOpModeType.RawAudioFrameOpModeReadOnly
|
|
537
|
+
): number {
|
|
538
|
+
const apiType = this.getApiTypeFromRegisterAudioFrameObserver(
|
|
539
|
+
observer,
|
|
540
|
+
mode
|
|
541
|
+
);
|
|
542
|
+
const jsonParams = {
|
|
543
|
+
observer: observer,
|
|
544
|
+
mode: mode,
|
|
545
|
+
toJSON: () => {
|
|
546
|
+
return {
|
|
547
|
+
mode: mode,
|
|
548
|
+
};
|
|
549
|
+
},
|
|
550
|
+
};
|
|
551
|
+
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
552
|
+
return jsonResults.result;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
protected getApiTypeFromRegisterAudioFrameObserver(
|
|
556
|
+
observer: IAudioPcmFrameSink,
|
|
557
|
+
mode: RawAudioFrameOpModeType = RawAudioFrameOpModeType.RawAudioFrameOpModeReadOnly
|
|
558
|
+
): string {
|
|
559
|
+
return 'MediaPlayer_registerAudioFrameObserver';
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
unregisterAudioFrameObserver(observer: IAudioPcmFrameSink): number {
|
|
563
|
+
const apiType = this.getApiTypeFromUnregisterAudioFrameObserver(observer);
|
|
564
|
+
const jsonParams = {
|
|
565
|
+
observer: observer,
|
|
566
|
+
toJSON: () => {
|
|
567
|
+
return {};
|
|
568
|
+
},
|
|
569
|
+
};
|
|
570
|
+
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
571
|
+
return jsonResults.result;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
protected getApiTypeFromUnregisterAudioFrameObserver(
|
|
575
|
+
observer: IAudioPcmFrameSink
|
|
576
|
+
): string {
|
|
577
|
+
return 'MediaPlayer_unregisterAudioFrameObserver';
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
registerVideoFrameObserver(observer: IMediaPlayerVideoFrameObserver): number {
|
|
581
|
+
const apiType = this.getApiTypeFromRegisterVideoFrameObserver(observer);
|
|
582
|
+
const jsonParams = {
|
|
583
|
+
observer: observer,
|
|
584
|
+
toJSON: () => {
|
|
585
|
+
return {};
|
|
586
|
+
},
|
|
587
|
+
};
|
|
588
|
+
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
589
|
+
return jsonResults.result;
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
protected getApiTypeFromRegisterVideoFrameObserver(
|
|
593
|
+
observer: IMediaPlayerVideoFrameObserver
|
|
594
|
+
): string {
|
|
595
|
+
return 'MediaPlayer_registerVideoFrameObserver';
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
unregisterVideoFrameObserver(
|
|
599
|
+
observer: IMediaPlayerVideoFrameObserver
|
|
600
|
+
): number {
|
|
601
|
+
const apiType = this.getApiTypeFromUnregisterVideoFrameObserver(observer);
|
|
602
|
+
const jsonParams = {
|
|
603
|
+
observer: observer,
|
|
604
|
+
toJSON: () => {
|
|
605
|
+
return {};
|
|
606
|
+
},
|
|
607
|
+
};
|
|
608
|
+
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
609
|
+
return jsonResults.result;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
protected getApiTypeFromUnregisterVideoFrameObserver(
|
|
613
|
+
observer: IMediaPlayerVideoFrameObserver
|
|
614
|
+
): string {
|
|
615
|
+
return 'MediaPlayer_unregisterVideoFrameObserver';
|
|
616
|
+
}
|
|
617
|
+
|
|
534
618
|
registerMediaPlayerAudioSpectrumObserver(
|
|
535
619
|
observer: IAudioSpectrumObserver,
|
|
536
620
|
intervalInMS: number
|
|
@@ -870,90 +954,6 @@ export class IMediaPlayerImpl implements IMediaPlayer {
|
|
|
870
954
|
): string {
|
|
871
955
|
return 'MediaPlayer_setSoundPositionParams';
|
|
872
956
|
}
|
|
873
|
-
|
|
874
|
-
registerAudioFrameObserver(
|
|
875
|
-
observer: IAudioPcmFrameSink,
|
|
876
|
-
mode: RawAudioFrameOpModeType = RawAudioFrameOpModeType.RawAudioFrameOpModeReadOnly
|
|
877
|
-
): number {
|
|
878
|
-
const apiType = this.getApiTypeFromRegisterAudioFrameObserver(
|
|
879
|
-
observer,
|
|
880
|
-
mode
|
|
881
|
-
);
|
|
882
|
-
const jsonParams = {
|
|
883
|
-
observer: observer,
|
|
884
|
-
mode: mode,
|
|
885
|
-
toJSON: () => {
|
|
886
|
-
return {
|
|
887
|
-
mode: mode,
|
|
888
|
-
};
|
|
889
|
-
},
|
|
890
|
-
};
|
|
891
|
-
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
892
|
-
return jsonResults.result;
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
protected getApiTypeFromRegisterAudioFrameObserver(
|
|
896
|
-
observer: IAudioPcmFrameSink,
|
|
897
|
-
mode: RawAudioFrameOpModeType = RawAudioFrameOpModeType.RawAudioFrameOpModeReadOnly
|
|
898
|
-
): string {
|
|
899
|
-
return 'MediaPlayer_registerAudioFrameObserver';
|
|
900
|
-
}
|
|
901
|
-
|
|
902
|
-
unregisterAudioFrameObserver(observer: IAudioPcmFrameSink): number {
|
|
903
|
-
const apiType = this.getApiTypeFromUnregisterAudioFrameObserver(observer);
|
|
904
|
-
const jsonParams = {
|
|
905
|
-
observer: observer,
|
|
906
|
-
toJSON: () => {
|
|
907
|
-
return {};
|
|
908
|
-
},
|
|
909
|
-
};
|
|
910
|
-
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
911
|
-
return jsonResults.result;
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
protected getApiTypeFromUnregisterAudioFrameObserver(
|
|
915
|
-
observer: IAudioPcmFrameSink
|
|
916
|
-
): string {
|
|
917
|
-
return 'MediaPlayer_unregisterAudioFrameObserver';
|
|
918
|
-
}
|
|
919
|
-
|
|
920
|
-
registerVideoFrameObserver(observer: IMediaPlayerVideoFrameObserver): number {
|
|
921
|
-
const apiType = this.getApiTypeFromRegisterVideoFrameObserver(observer);
|
|
922
|
-
const jsonParams = {
|
|
923
|
-
observer: observer,
|
|
924
|
-
toJSON: () => {
|
|
925
|
-
return {};
|
|
926
|
-
},
|
|
927
|
-
};
|
|
928
|
-
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
929
|
-
return jsonResults.result;
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
protected getApiTypeFromRegisterVideoFrameObserver(
|
|
933
|
-
observer: IMediaPlayerVideoFrameObserver
|
|
934
|
-
): string {
|
|
935
|
-
return 'MediaPlayer_registerVideoFrameObserver';
|
|
936
|
-
}
|
|
937
|
-
|
|
938
|
-
unregisterVideoFrameObserver(
|
|
939
|
-
observer: IMediaPlayerVideoFrameObserver
|
|
940
|
-
): number {
|
|
941
|
-
const apiType = this.getApiTypeFromUnregisterVideoFrameObserver(observer);
|
|
942
|
-
const jsonParams = {
|
|
943
|
-
observer: observer,
|
|
944
|
-
toJSON: () => {
|
|
945
|
-
return {};
|
|
946
|
-
},
|
|
947
|
-
};
|
|
948
|
-
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
949
|
-
return jsonResults.result;
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
protected getApiTypeFromUnregisterVideoFrameObserver(
|
|
953
|
-
observer: IMediaPlayerVideoFrameObserver
|
|
954
|
-
): string {
|
|
955
|
-
return 'MediaPlayer_unregisterVideoFrameObserver';
|
|
956
|
-
}
|
|
957
957
|
}
|
|
958
958
|
|
|
959
959
|
// @ts-ignore
|
|
@@ -5009,11 +5009,11 @@ export class IRtcEngineImpl implements IRtcEngine {
|
|
|
5009
5009
|
return 'RtcEngine_startScreenCapture';
|
|
5010
5010
|
}
|
|
5011
5011
|
|
|
5012
|
-
|
|
5012
|
+
startScreenCaptureBySourceType(
|
|
5013
5013
|
sourceType: VideoSourceType,
|
|
5014
5014
|
config: ScreenCaptureConfiguration
|
|
5015
5015
|
): number {
|
|
5016
|
-
const apiType = this.
|
|
5016
|
+
const apiType = this.getApiTypeFromStartScreenCaptureBySourceType(
|
|
5017
5017
|
sourceType,
|
|
5018
5018
|
config
|
|
5019
5019
|
);
|
|
@@ -5031,11 +5031,11 @@ export class IRtcEngineImpl implements IRtcEngine {
|
|
|
5031
5031
|
return jsonResults.result;
|
|
5032
5032
|
}
|
|
5033
5033
|
|
|
5034
|
-
protected
|
|
5034
|
+
protected getApiTypeFromStartScreenCaptureBySourceType(
|
|
5035
5035
|
sourceType: VideoSourceType,
|
|
5036
5036
|
config: ScreenCaptureConfiguration
|
|
5037
5037
|
): string {
|
|
5038
|
-
return '
|
|
5038
|
+
return 'RtcEngine_startScreenCaptureBySourceType';
|
|
5039
5039
|
}
|
|
5040
5040
|
|
|
5041
5041
|
updateScreenCapture(captureParams: ScreenCaptureParameters2): number {
|
|
@@ -5089,10 +5089,20 @@ export class IRtcEngineImpl implements IRtcEngine {
|
|
|
5089
5089
|
return 'RtcEngine_setScreenCaptureScenario';
|
|
5090
5090
|
}
|
|
5091
5091
|
|
|
5092
|
-
stopScreenCapture(
|
|
5093
|
-
|
|
5094
|
-
|
|
5095
|
-
const
|
|
5092
|
+
stopScreenCapture(): number {
|
|
5093
|
+
const apiType = this.getApiTypeFromStopScreenCapture();
|
|
5094
|
+
const jsonParams = {};
|
|
5095
|
+
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
5096
|
+
return jsonResults.result;
|
|
5097
|
+
}
|
|
5098
|
+
|
|
5099
|
+
protected getApiTypeFromStopScreenCapture(): string {
|
|
5100
|
+
return 'RtcEngine_stopScreenCapture';
|
|
5101
|
+
}
|
|
5102
|
+
|
|
5103
|
+
stopScreenCaptureBySourceType(sourceType: VideoSourceType): number {
|
|
5104
|
+
const apiType =
|
|
5105
|
+
this.getApiTypeFromStopScreenCaptureBySourceType(sourceType);
|
|
5096
5106
|
const jsonParams = {
|
|
5097
5107
|
sourceType: sourceType,
|
|
5098
5108
|
toJSON: () => {
|
|
@@ -5105,10 +5115,10 @@ export class IRtcEngineImpl implements IRtcEngine {
|
|
|
5105
5115
|
return jsonResults.result;
|
|
5106
5116
|
}
|
|
5107
5117
|
|
|
5108
|
-
protected
|
|
5109
|
-
sourceType: VideoSourceType
|
|
5118
|
+
protected getApiTypeFromStopScreenCaptureBySourceType(
|
|
5119
|
+
sourceType: VideoSourceType
|
|
5110
5120
|
): string {
|
|
5111
|
-
return '
|
|
5121
|
+
return 'RtcEngine_stopScreenCaptureBySourceType';
|
|
5112
5122
|
}
|
|
5113
5123
|
|
|
5114
5124
|
getCallId(): string {
|
|
@@ -6593,65 +6603,15 @@ export class IRtcEngineImpl implements IRtcEngine {
|
|
|
6593
6603
|
return 'RtcEngine_enableInstantMediaRendering';
|
|
6594
6604
|
}
|
|
6595
6605
|
|
|
6596
|
-
|
|
6597
|
-
const apiType = this.
|
|
6606
|
+
getNtpWallTimeInMs(): number {
|
|
6607
|
+
const apiType = this.getApiTypeFromGetNtpWallTimeInMs();
|
|
6598
6608
|
const jsonParams = {};
|
|
6599
6609
|
const jsonResults = callIrisApi.call(this, apiType, jsonParams);
|
|
6600
6610
|
return jsonResults.result;
|
|
6601
6611
|
}
|
|
6602
6612
|
|
|
6603
|
-
protected
|
|
6604
|
-
return '
|
|
6605
|
-
}
|
|
6606
|
-
|
|
6607
|
-
destroyRendererByView(view: any): void {
|
|
6608
|
-
const apiType = this.getApiTypeFromDestroyRendererByView(view);
|
|
6609
|
-
const jsonParams = {
|
|
6610
|
-
view: view,
|
|
6611
|
-
toJSON: () => {
|
|
6612
|
-
return {
|
|
6613
|
-
view: view,
|
|
6614
|
-
};
|
|
6615
|
-
},
|
|
6616
|
-
};
|
|
6617
|
-
callIrisApi.call(this, apiType, jsonParams);
|
|
6618
|
-
}
|
|
6619
|
-
|
|
6620
|
-
protected getApiTypeFromDestroyRendererByView(view: any): string {
|
|
6621
|
-
return 'RtcEngine_destroyRendererByView';
|
|
6622
|
-
}
|
|
6623
|
-
|
|
6624
|
-
destroyRendererByConfig(
|
|
6625
|
-
sourceType: VideoSourceType,
|
|
6626
|
-
channelId?: string,
|
|
6627
|
-
uid: number = 0
|
|
6628
|
-
): void {
|
|
6629
|
-
const apiType = this.getApiTypeFromDestroyRendererByConfig(
|
|
6630
|
-
sourceType,
|
|
6631
|
-
channelId,
|
|
6632
|
-
uid
|
|
6633
|
-
);
|
|
6634
|
-
const jsonParams = {
|
|
6635
|
-
sourceType: sourceType,
|
|
6636
|
-
channelId: channelId,
|
|
6637
|
-
uid: uid,
|
|
6638
|
-
toJSON: () => {
|
|
6639
|
-
return {
|
|
6640
|
-
sourceType: sourceType,
|
|
6641
|
-
channelId: channelId,
|
|
6642
|
-
uid: uid,
|
|
6643
|
-
};
|
|
6644
|
-
},
|
|
6645
|
-
};
|
|
6646
|
-
callIrisApi.call(this, apiType, jsonParams);
|
|
6647
|
-
}
|
|
6648
|
-
|
|
6649
|
-
protected getApiTypeFromDestroyRendererByConfig(
|
|
6650
|
-
sourceType: VideoSourceType,
|
|
6651
|
-
channelId?: string,
|
|
6652
|
-
uid: number = 0
|
|
6653
|
-
): string {
|
|
6654
|
-
return 'RtcEngine_destroyRendererByConfig';
|
|
6613
|
+
protected getApiTypeFromGetNtpWallTimeInMs(): string {
|
|
6614
|
+
return 'RtcEngine_getNtpWallTimeInMs';
|
|
6655
6615
|
}
|
|
6656
6616
|
|
|
6657
6617
|
getAudioDeviceManager(): IAudioDeviceManager {
|
|
@@ -6750,6 +6710,56 @@ export class IRtcEngineImpl implements IRtcEngine {
|
|
|
6750
6710
|
return 'RtcEngine_setMaxMetadataSize';
|
|
6751
6711
|
}
|
|
6752
6712
|
|
|
6713
|
+
destroyRendererByView(view: any): void {
|
|
6714
|
+
const apiType = this.getApiTypeFromDestroyRendererByView(view);
|
|
6715
|
+
const jsonParams = {
|
|
6716
|
+
view: view,
|
|
6717
|
+
toJSON: () => {
|
|
6718
|
+
return {
|
|
6719
|
+
view: view,
|
|
6720
|
+
};
|
|
6721
|
+
},
|
|
6722
|
+
};
|
|
6723
|
+
callIrisApi.call(this, apiType, jsonParams);
|
|
6724
|
+
}
|
|
6725
|
+
|
|
6726
|
+
protected getApiTypeFromDestroyRendererByView(view: any): string {
|
|
6727
|
+
return 'RtcEngine_destroyRendererByView';
|
|
6728
|
+
}
|
|
6729
|
+
|
|
6730
|
+
destroyRendererByConfig(
|
|
6731
|
+
sourceType: VideoSourceType,
|
|
6732
|
+
channelId?: string,
|
|
6733
|
+
uid: number = 0
|
|
6734
|
+
): void {
|
|
6735
|
+
const apiType = this.getApiTypeFromDestroyRendererByConfig(
|
|
6736
|
+
sourceType,
|
|
6737
|
+
channelId,
|
|
6738
|
+
uid
|
|
6739
|
+
);
|
|
6740
|
+
const jsonParams = {
|
|
6741
|
+
sourceType: sourceType,
|
|
6742
|
+
channelId: channelId,
|
|
6743
|
+
uid: uid,
|
|
6744
|
+
toJSON: () => {
|
|
6745
|
+
return {
|
|
6746
|
+
sourceType: sourceType,
|
|
6747
|
+
channelId: channelId,
|
|
6748
|
+
uid: uid,
|
|
6749
|
+
};
|
|
6750
|
+
},
|
|
6751
|
+
};
|
|
6752
|
+
callIrisApi.call(this, apiType, jsonParams);
|
|
6753
|
+
}
|
|
6754
|
+
|
|
6755
|
+
protected getApiTypeFromDestroyRendererByConfig(
|
|
6756
|
+
sourceType: VideoSourceType,
|
|
6757
|
+
channelId?: string,
|
|
6758
|
+
uid: number = 0
|
|
6759
|
+
): string {
|
|
6760
|
+
return 'RtcEngine_destroyRendererByConfig';
|
|
6761
|
+
}
|
|
6762
|
+
|
|
6753
6763
|
unregisterAudioEncodedFrameObserver(
|
|
6754
6764
|
observer: IAudioEncodedFrameObserver
|
|
6755
6765
|
): number {
|
|
@@ -317,7 +317,6 @@ function handleEvent(...[event, data, buffers]: any) {
|
|
|
317
317
|
let processor: EventProcessor = EVENT_PROCESSORS.IRtcEngineEventHandler;
|
|
318
318
|
|
|
319
319
|
Object.values(EVENT_PROCESSORS).some((it) => {
|
|
320
|
-
// @ts-ignore
|
|
321
320
|
const p = it as EventProcessor;
|
|
322
321
|
if (
|
|
323
322
|
_event.startsWith(p.suffix) &&
|
|
@@ -421,7 +420,6 @@ export function callIrisApi(funcName: string, params: any): any {
|
|
|
421
420
|
buffers.push(params.data);
|
|
422
421
|
break;
|
|
423
422
|
case 'RtcEngine_destroyMediaPlayer':
|
|
424
|
-
// @ts-ignore
|
|
425
423
|
params.mediaPlayerId = params.media_player.getMediaPlayerId();
|
|
426
424
|
params.toJSON = function () {
|
|
427
425
|
return { playerId: params.mediaPlayerId };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createCheckers } from 'ts-interface-checker';
|
|
2
2
|
|
|
3
|
-
import { RendererManager } from '../../Renderer/RendererManager';
|
|
4
3
|
import { Channel } from '../../Types';
|
|
5
4
|
import { AgoraEnv } from '../../Utils';
|
|
6
5
|
|
|
@@ -61,11 +60,6 @@ import {
|
|
|
61
60
|
import AgoraBaseTI from '../ti/AgoraBase-ti';
|
|
62
61
|
import AgoraMediaBaseTI from '../ti/AgoraMediaBase-ti';
|
|
63
62
|
import IAgoraRtcEngineTI from '../ti/IAgoraRtcEngine-ti';
|
|
64
|
-
const checkers = createCheckers(
|
|
65
|
-
AgoraBaseTI,
|
|
66
|
-
AgoraMediaBaseTI,
|
|
67
|
-
IAgoraRtcEngineTI
|
|
68
|
-
);
|
|
69
63
|
|
|
70
64
|
import { AudioDeviceManagerInternal } from './AudioDeviceManagerInternal';
|
|
71
65
|
import { DeviceEventEmitter, EVENT_TYPE, callIrisApi } from './IrisApiEngine';
|
|
@@ -76,6 +70,12 @@ import { MediaRecorderInternal } from './MediaRecorderInternal';
|
|
|
76
70
|
import { MusicContentCenterInternal } from './MusicContentCenterInternal';
|
|
77
71
|
import type { EmitterSubscription } from './emitter/EventEmitter';
|
|
78
72
|
|
|
73
|
+
const checkers = createCheckers(
|
|
74
|
+
AgoraBaseTI,
|
|
75
|
+
AgoraMediaBaseTI,
|
|
76
|
+
IAgoraRtcEngineTI
|
|
77
|
+
);
|
|
78
|
+
|
|
79
79
|
export class RtcEngineExInternal extends IRtcEngineExImpl {
|
|
80
80
|
static _event_handlers: IRtcEngineEventHandler[] = [];
|
|
81
81
|
static _direct_cdn_streaming_event_handler: IDirectCdnStreamingEventHandler[] =
|
|
@@ -107,8 +107,11 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
|
|
|
107
107
|
>();
|
|
108
108
|
|
|
109
109
|
initialize(context: RtcEngineContext): number {
|
|
110
|
-
AgoraEnv.
|
|
111
|
-
|
|
110
|
+
if (AgoraEnv.webEnvReady) {
|
|
111
|
+
const { RendererManager } = require('../../Renderer/RendererManager');
|
|
112
|
+
AgoraEnv.AgoraRendererManager = new RendererManager();
|
|
113
|
+
}
|
|
114
|
+
AgoraEnv.AgoraRendererManager?.enableRender();
|
|
112
115
|
const ret = super.initialize(context);
|
|
113
116
|
callIrisApi.call(this, 'RtcEngine_setAppType', {
|
|
114
117
|
appType: 3,
|
|
@@ -117,6 +120,7 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
|
|
|
117
120
|
}
|
|
118
121
|
|
|
119
122
|
release(sync: boolean = false) {
|
|
123
|
+
AgoraEnv.AgoraElectronBridge.ReleaseRenderer();
|
|
120
124
|
AgoraEnv.AgoraRendererManager?.clear();
|
|
121
125
|
AgoraEnv.AgoraRendererManager = undefined;
|
|
122
126
|
this._audio_device_manager.release();
|
|
@@ -478,15 +482,15 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
|
|
|
478
482
|
return 'RtcEngineEx_createDataStreamEx2';
|
|
479
483
|
}
|
|
480
484
|
|
|
481
|
-
protected
|
|
485
|
+
protected getApiTypeFromStartScreenCaptureBySourceType(
|
|
482
486
|
sourceType: VideoSourceType,
|
|
483
487
|
config: ScreenCaptureConfiguration
|
|
484
488
|
): string {
|
|
485
489
|
return 'RtcEngine_startScreenCapture2';
|
|
486
490
|
}
|
|
487
491
|
|
|
488
|
-
protected
|
|
489
|
-
sourceType: VideoSourceType
|
|
492
|
+
protected getApiTypeFromStopScreenCaptureBySourceType(
|
|
493
|
+
sourceType: VideoSourceType
|
|
490
494
|
): string {
|
|
491
495
|
return 'RtcEngine_stopScreenCapture2';
|
|
492
496
|
}
|
|
@@ -583,13 +587,20 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
|
|
|
583
587
|
}
|
|
584
588
|
|
|
585
589
|
setupLocalVideo(canvas: VideoCanvas): number {
|
|
586
|
-
|
|
590
|
+
let {
|
|
587
591
|
sourceType = VideoSourceType.VideoSourceCamera,
|
|
588
592
|
uid,
|
|
593
|
+
mediaPlayerId,
|
|
589
594
|
view,
|
|
590
595
|
renderMode,
|
|
591
596
|
mirrorMode,
|
|
592
597
|
} = canvas;
|
|
598
|
+
if (
|
|
599
|
+
sourceType === VideoSourceType.VideoSourceMediaPlayer &&
|
|
600
|
+
mediaPlayerId !== undefined
|
|
601
|
+
) {
|
|
602
|
+
uid = mediaPlayerId;
|
|
603
|
+
}
|
|
593
604
|
return (
|
|
594
605
|
AgoraEnv.AgoraRendererManager?.setupLocalVideo({
|
|
595
606
|
videoSourceType: sourceType,
|
package/ts/Renderer/AgoraView.ts
CHANGED
package/ts/Renderer/IRenderer.ts
CHANGED
|
@@ -8,32 +8,30 @@ export type RenderFailCallback =
|
|
|
8
8
|
| undefined
|
|
9
9
|
| null;
|
|
10
10
|
|
|
11
|
-
export class IRenderer {
|
|
11
|
+
export abstract class IRenderer {
|
|
12
12
|
parentElement?: HTMLElement;
|
|
13
13
|
canvas?: HTMLCanvasElement;
|
|
14
14
|
event?: EventEmitter;
|
|
15
15
|
contentMode = RenderModeType.RenderModeFit;
|
|
16
16
|
mirror?: boolean;
|
|
17
17
|
|
|
18
|
-
snapshot(fileType = 'image/png') {
|
|
18
|
+
public snapshot(fileType = 'image/png') {
|
|
19
19
|
if (this.canvas && this.canvas.toDataURL) {
|
|
20
20
|
return this.canvas.toDataURL(fileType);
|
|
21
21
|
}
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
bind(element: HTMLElement) {
|
|
25
|
+
public bind(element: HTMLElement) {
|
|
26
26
|
if (!element) {
|
|
27
27
|
throw new Error('You have pass a element');
|
|
28
28
|
}
|
|
29
29
|
this.parentElement = element;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
unbind()
|
|
33
|
-
throw new Error('You have to declare your own custom render');
|
|
34
|
-
}
|
|
32
|
+
abstract unbind(): void;
|
|
35
33
|
|
|
36
|
-
equalsElement(element: Element): boolean {
|
|
34
|
+
public equalsElement(element: Element): boolean {
|
|
37
35
|
if (!element) {
|
|
38
36
|
throw new Error('You have pass a element');
|
|
39
37
|
}
|
|
@@ -43,11 +41,9 @@ export class IRenderer {
|
|
|
43
41
|
return element === this.parentElement;
|
|
44
42
|
}
|
|
45
43
|
|
|
46
|
-
drawFrame(imageData: ShareVideoFrame)
|
|
47
|
-
throw new Error('You have to declare your own custom render');
|
|
48
|
-
}
|
|
44
|
+
abstract drawFrame(imageData: ShareVideoFrame): void;
|
|
49
45
|
|
|
50
|
-
setRenderOption({ contentMode, mirror }: RendererOptions) {
|
|
46
|
+
public setRenderOption({ contentMode, mirror }: RendererOptions) {
|
|
51
47
|
this.contentMode = contentMode ?? RenderModeType.RenderModeFit;
|
|
52
48
|
this.mirror = mirror;
|
|
53
49
|
Object.assign(this.parentElement!.style, {
|
|
@@ -55,7 +51,5 @@ export class IRenderer {
|
|
|
55
51
|
});
|
|
56
52
|
}
|
|
57
53
|
|
|
58
|
-
refreshCanvas()
|
|
59
|
-
throw new Error('You have to declare your own custom render');
|
|
60
|
-
}
|
|
54
|
+
abstract refreshCanvas(): void;
|
|
61
55
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { RenderModeType, VideoSourceType } from '../Private/AgoraMediaBase';
|
|
2
|
+
import { Channel, RendererVideoConfig } from '../Types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @ignore
|
|
6
|
+
*/
|
|
7
|
+
export abstract class IRendererManager {
|
|
8
|
+
abstract get defaultRenderConfig(): RendererVideoConfig;
|
|
9
|
+
|
|
10
|
+
abstract enableRender(enabled?: boolean): void;
|
|
11
|
+
|
|
12
|
+
abstract clear(): void;
|
|
13
|
+
|
|
14
|
+
abstract setupVideo(rendererVideoConfig: RendererVideoConfig): number;
|
|
15
|
+
|
|
16
|
+
abstract setupLocalVideo(rendererConfig: RendererVideoConfig): number;
|
|
17
|
+
|
|
18
|
+
abstract setupRemoteVideo(rendererConfig: RendererVideoConfig): number;
|
|
19
|
+
|
|
20
|
+
abstract setRenderOptionByConfig(rendererConfig: RendererVideoConfig): number;
|
|
21
|
+
|
|
22
|
+
abstract destroyRendererByView(view: Element): void;
|
|
23
|
+
|
|
24
|
+
abstract destroyRenderersByConfig(
|
|
25
|
+
videoSourceType: VideoSourceType,
|
|
26
|
+
channelId?: Channel,
|
|
27
|
+
uid?: number
|
|
28
|
+
): void;
|
|
29
|
+
|
|
30
|
+
abstract setRenderOption(
|
|
31
|
+
view: HTMLElement,
|
|
32
|
+
contentMode?: RenderModeType,
|
|
33
|
+
mirror?: boolean
|
|
34
|
+
): void;
|
|
35
|
+
}
|
|
@@ -23,14 +23,15 @@ import {
|
|
|
23
23
|
logWarn,
|
|
24
24
|
} from '../Utils';
|
|
25
25
|
|
|
26
|
-
import GlRenderer from './GlRenderer';
|
|
27
26
|
import { IRenderer, RenderFailCallback } from './IRenderer';
|
|
27
|
+
import { IRendererManager } from './IRendererManager';
|
|
28
|
+
import WebGLRenderer from './WebGLRenderer';
|
|
28
29
|
import { YUVCanvasRenderer } from './YUVCanvasRenderer';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* @ignore
|
|
32
33
|
*/
|
|
33
|
-
export class RendererManager {
|
|
34
|
+
export class RendererManager extends IRendererManager {
|
|
34
35
|
/**
|
|
35
36
|
* @ignore
|
|
36
37
|
*/
|
|
@@ -58,6 +59,7 @@ export class RendererManager {
|
|
|
58
59
|
defaultRenderConfig: RendererVideoConfig;
|
|
59
60
|
|
|
60
61
|
constructor() {
|
|
62
|
+
super();
|
|
61
63
|
this.renderFps = 10;
|
|
62
64
|
this.renderers = new Map();
|
|
63
65
|
this.renderMode = this.checkWebglEnv()
|
|
@@ -183,7 +185,7 @@ export class RendererManager {
|
|
|
183
185
|
const render = this.bindHTMLElementToRender(formatConfig, view!);
|
|
184
186
|
|
|
185
187
|
// render config
|
|
186
|
-
render
|
|
188
|
+
render?.setRenderOption(rendererOptions);
|
|
187
189
|
|
|
188
190
|
// enable iris videoFrame
|
|
189
191
|
this.enableVideoFrameCache({
|
|
@@ -305,7 +307,6 @@ export class RendererManager {
|
|
|
305
307
|
* @ignore
|
|
306
308
|
*/
|
|
307
309
|
public clear(): void {
|
|
308
|
-
AgoraEnv.AgoraElectronBridge.ReleaseRenderer();
|
|
309
310
|
this.stopRender();
|
|
310
311
|
this.removeAllRenderer();
|
|
311
312
|
}
|
|
@@ -423,7 +424,7 @@ export class RendererManager {
|
|
|
423
424
|
if (this.renderMode === RENDER_MODE.SOFTWARE) {
|
|
424
425
|
return new YUVCanvasRenderer();
|
|
425
426
|
} else {
|
|
426
|
-
return new
|
|
427
|
+
return new WebGLRenderer(failCallback);
|
|
427
428
|
}
|
|
428
429
|
}
|
|
429
430
|
|
|
@@ -458,7 +459,7 @@ export class RendererManager {
|
|
|
458
459
|
private bindHTMLElementToRender(
|
|
459
460
|
config: FormatRendererVideoConfig,
|
|
460
461
|
view: HTMLElement
|
|
461
|
-
): IRenderer {
|
|
462
|
+
): IRenderer | undefined {
|
|
462
463
|
this.ensureRendererConfig(config);
|
|
463
464
|
const renders = this.getRenderers(config);
|
|
464
465
|
const filterRenders =
|
|
@@ -611,14 +612,13 @@ export class RendererManager {
|
|
|
611
612
|
/**
|
|
612
613
|
* @ignore
|
|
613
614
|
*/
|
|
614
|
-
|
|
615
|
+
public updateVideoFrameCacheInMap(
|
|
615
616
|
config: VideoFrameCacheConfig,
|
|
616
617
|
shareVideoFrame: ShareVideoFrame
|
|
617
618
|
): void {
|
|
618
619
|
let rendererConfigMap = this.ensureRendererConfig(config);
|
|
619
620
|
rendererConfigMap
|
|
620
|
-
?
|
|
621
|
-
Object.assign(rendererConfigMap.get(config.uid), {
|
|
621
|
+
? Object.assign(rendererConfigMap.get(config.uid) ?? {}, {
|
|
622
622
|
shareVideoFrame,
|
|
623
623
|
})
|
|
624
624
|
: logWarn(
|