How to add recording functionality in my video calls

Hey @tony,

In order to add recording functionality, the role must be set to 1 in the meetConfig object. This makes you the host when you join a meeting.

Then, you can add the functions you found into the ZoomMtg.join callback success function. Here is the sample-app-web code modified to record a meeting,

(function() {

  console.log('checkSystemRequirements');
  console.log(JSON.stringify(ZoomMtg.checkSystemRequirements()));

  // it's option if you want to chenge the jssdk dependency link resources.
  // ZoomMtg.setZoomJSLib('https://dmogdx0jrul3u.cloudfront.net/1.4.2/lib', '/av'); // CDN version default
  // ZoomMtg.setZoomJSLib('http://localhost:9999/node_modules/zoomus-jssdk/dist/lib', '/av'); // Local version default

  ZoomMtg.preLoadWasm();

  ZoomMtg.prepareJssdk();

  var API_KEY = 'YOUR_API_KEY';

  /**
   * NEVER PUT YOUR ACTUAL API SECRET IN CLIENT SIDE CODE, THIS IS JUST FOR QUICK PROTOTYPING
   * The below generateSignature should be done server side as not to expose your api secret in public
   * You can find an eaxmple in here: https://marketplace.zoom.us/docs/sdk/native-sdks/Web-Client-SDK/tutorial/generate-signature
   */
  var API_SECRET = 'YOUR_API_SECRET';

  document.getElementById('join_meeting').addEventListener('click', function(e) {

    e.preventDefault();

    if (!this.form.checkValidity()) {
      alert("Enter Name and Meeting Number");
      return false;
    }

    var meetConfig = {
      apiKey: API_KEY,
      apiSecret: API_SECRET,
      meetingNumber: parseInt(document.getElementById('meeting_number').value),
      userName: document.getElementById('display_name').value,
      passWord: "",
      leaveUrl: "https://zoom.us",
      role: 1
    };


    var signature = ZoomMtg.generateSignature({
      meetingNumber: meetConfig.meetingNumber,
      apiKey: meetConfig.apiKey,
      apiSecret: meetConfig.apiSecret,
      role: meetConfig.role,
      success: function(res) {
        console.log(res.result);
      }
    });

    ZoomMtg.init({
      leaveUrl: 'http://www.zoom.us',
      isSupportAV: true,
      success: function() {
        ZoomMtg.join({
          meetingNumber: meetConfig.meetingNumber,
          userName: meetConfig.userName,
          signature: signature,
          apiKey: meetConfig.apiKey,
          userEmail: 'email@gmail.com',
          passWord: meetConfig.passWord,
          success: function(res) {

			$('#nav-tool').hide();
            console.log('join meeting success');

			// meeting set to record by default
            ZoomMtg.record({
              record: true
            });

			// meeting set to show record button
            // ZoomMtg.showRecordFunction({
            // 	show: true
            // });
          },
          error: function(res) {
            console.log(res);
          }
        });
      },
      error: function(res) {
        console.log(res);
      }
    });

  });

})();

Let me know if this works for you!

Thanks,
Tommy