How to record in Electron SDK?

Description
In the Electron SDK demo, many API functions are available in the control window (inmeeting.html), but recording is not one of them. I looked at the demo code, the SDK reference, and its code, and came up with:

let zoomrecord = zoommeeting.GetMeetingRecording();

and

startRecording: function() {
let opts = {
recPath: ‘testPath.mp4’
}
zoomrecord.startRecording(opts)
}

The startRecording function is called through an ipcRenderer message, same as all functions in the demo. However, when I try to start the app, I get the error:

TypeError: clientOpts.addon.GetMeetingRecordingCtrl is not a function
at init (D:\Some\Path\zoom-sdk-electron\lib\zoom_meeting_recording.js:20:35)
at Object.getInstance (D:\Some\Path\zoom-sdk-electron\lib\zoom_meeting_recording.js:271:20)
at Object.GetMeetingRecording (D:\Some\Path\zoom-sdk-electron\lib\zoom_meeting.js:394:81)
at sdkauthCB (D:\Some\Path\zoom-sdk-electron\demo\main.js:79:27)
at onAuthenticationReturn (D:\Some\Path\zoom-sdk-electron\lib\zoom_auth.js:36:9)

This is clearly referring to this line.

It seems to me that GetMeetingRecordingCtrl is supposed to be defined by the node_addon code, so I’m kinda stuck here. How can I proceed?

Hi @ammar,

Thanks for the reply. The Electron SDK has not wrapped the interfaces for recording, but the corresponding interfaces are available in the native SDK. I have forwarded this as a feature request to the engineering team, but if you need this urgently, you could modify the Electron SDK source code and add the interface. The corresponding interface could be found here: lib\node_add_on\win\h\meeting_service_components\meeting_recording_interface.h

Hope this helps. Thanks!

@Carson_Chen
Thanks a lot for getting back to me on this. This is useful to know.
This feels like the kind of rabbit hole I’ll go down for a few days before going “Ah! So this is why they thought it too much trouble”. I’ll take a look, but I’m guessing I’ll have to find some other solution.

Thanks again.

Hi @ammar,

Thanks for the reply. The Electron SDK might not include all interfaces that are available in the native Windows or Mac SDKs. If using the native SDKs is an option, you may consider using the native SDKs since they will have the full sets of interfaces.

Thanks!