acquireStream function presentation

Last updated: 2026-03-05T10:53:28.864Z

Metrics

LOC: 34 Complexity: 4 Params: 3

Signature

acquireStream( tabId: number, opts: ScreenRecordOptions, ): : Promise<MediaStream>

Source Code

  async function acquireStream(
    tabId: number,
    opts: ScreenRecordOptions,
  ): Promise<MediaStream> {
    // chrome.tabCapture.getMediaStreamId requires an active tab
    const streamId = await new Promise<string>((resolve, reject) => {
      chrome.tabCapture.getMediaStreamId({ targetTabId: tabId }, (id) => {
        if (chrome.runtime.lastError) {
          reject(new Error(chrome.runtime.lastError.message));
        } else {
          resolve(id);
        }
      });
    });

    const constraints: MediaStreamConstraints = {
      audio: opts.includeAudio
        ? ({
            mandatory: {
              chromeMediaSource: "tab",
              chromeMediaSourceId: streamId,
            },
          } as MediaTrackConstraints)
        : false,
      video: {
        mandatory: {
          chromeMediaSource: "tab",
          chromeMediaSourceId: streamId,
        },
      } as MediaTrackConstraints,
    };

    return navigator.mediaDevices.getUserMedia(constraints);
  }

No outgoing dependencies.

Impact (Incoming)

graph LR acquireStream["acquireStream"] start["start"] start -->|calls| acquireStream style acquireStream fill:#dbeafe,stroke:#2563eb,stroke-width:2px click acquireStream "1cf6715296051fa9.html" click start "f0ed2d1a28e21447.html"
SourceType
start calls