startRecording method

Future<void> startRecording({
  1. String? webhookUrl,
  2. String? awsDirPath,
  3. Map<String, dynamic>? config,
  4. PostTranscriptionConfig? postTranscriptionConfig,
})

Starts recording the current room session.

  • When recording starts successfully, all participants, including the local participant, will receive a Events.recordingStarted event.

  • Once the recording is completed and stored on the server, the provided webhookUrl will be triggered with recording details. Learn more about webhooks here: https://en.wikipedia.org/wiki/Webhook

Parameters

  • webhookUrl (optional): A URL that will be called when the recording is completed and stored on the server.

  • awsDirPath (optional): The directory path in the configured AWS storage where the recording files will be saved.

  • config (optional): A map containing recording configuration options:

    layout

    • type: "GRID" | "SPOTLIGHT" | "SIDEBAR"
    • priority: "SPEAKER" | "PIN"
    • gridSize: Number (maximum 4)

    theme

    • "DARK" | "LIGHT" | "DEFAULT"

    mode

    • "video-and-audio" | "audio"

    quality

    • "low" | "med" | "high"

    orientation

    • "landscape" | "portrait"
  • postTranscriptionConfig (optional): Configuration for post-recording transcription and summary generation:

    • enabled: Enables post-transcription processing
    • modelId: The transcription model identifier
    • summaryConfig:
      • enabled: Enables summary generation
      • prompt: Custom prompt for generating the summary

Events associated with startRecording()

Example

const webhookUrl = 'https://webhook.your-api-server.com';

final config = {
  'layout': {
    'type': 'GRID',
    'priority': 'SPEAKER',
    'gridSize': 4,
  },
  'theme': 'LIGHT',
  'mode': 'video-and-audio',
};

final postTranscriptionConfig = PostTranscriptionConfig(
  enabled: true,
  modelId: 'raman_v1',
  summaryConfig: SummaryConfig(
    enabled: true,
    prompt:
        'Write summary in sections like Title, Agenda, Speakers, '
        'Action Items, Outlines, Notes and Summary',
  ),
);

await room.startRecording(
  webhookUrl: webhookUrl,
  config: config,
  postTranscriptionConfig: postTranscriptionConfig,
);

Implementation

Future<void> startRecording(
        {String? webhookUrl,
        String? awsDirPath,
        Map<String, dynamic>? config,
        PostTranscriptionConfig? postTranscriptionConfig}) =>
    _startRecording(
      webhookUrl: webhookUrl,
      awsDirPath: awsDirPath,
      config: config,
      postTranscriptionConfig: postTranscriptionConfig,
    );