Preparing search index...

    Class MicrophoneAudioProvider

    The Audio Track Provider of the audio from microphone.

    Lens Scripting Version 145

    // @input Asset.AudioTrackAsset audioTrack
    // @input int sampleRate = 44100

    var control = script.audioTrack.control;
    if (control.isOfType("Provider.MicrophoneAudioProvider")) {
    control.start();
    }

    control.sampleRate = script.sampleRate;
    var audioFrame = new Float32Array(control.maxFrameSize);

    script.createEvent("UpdateEvent").bind(function (eventData) {
    var audioFrameShape = control.getAudioFrame(audioFrame);
    if (audioFrameShape.x == 0) {
    return;
    }
    // do something with data
    })

    Hierarchy (View Summary)

    Index

    Properties

    maxFrameSize: number

    The maximum frame size of the audio track asset.

    Lens Scripting Version 145

    sampleRate: number

    Sample rate (samples per second) of the audio track asset.

    Lens Scripting Version 145

    Methods

    • Returns a Promise that resolves once this Provider has finished loading its resource.

      Returns Promise<void>

      If the Provider is already loaded when ensureLoaded() is called, the returned Promise resolves immediately. Otherwise it resolves once loading completes.

      Completion is determined by the Provider's load status (see Provider.getLoadStatus). Some Providers only become loaded once supporting runtime data is available — for example, a Provider whose resource depends on tracking will not report loaded until the relevant tracking data has arrived — so the returned Promise stays pending until that data is produced.

      This method is useful when Lens script needs to await a Provider before reading its data — for example, waiting for a remote-asset Provider to finish downloading before sampling it.

      Lens Scripting Version 370

      Fetch a Texture at runtime via RemoteMediaModule and wait for its Provider to finish loading before using it:

      const internetModule = require("LensStudio:InternetModule");
      const remoteMediaModule = require("LensStudio:RemoteMediaModule");

      function loadImageTexture(url) {
      const resource = internetModule.makeResourceFromUrl(url);
      return new Promise((resolve, reject) => {
      remoteMediaModule.loadResourceAsImageTexture(resource, resolve, reject);
      });
      }

      const texture = await loadImageTexture("https://example.com/image.png");

      // Wait until the fetched Texture's Provider has finished loading before using it.
      await texture.control.ensureLoaded();
      print("Texture ready, loadStatus: " + texture.control.getLoadStatus());
    • Exposes User Data

      Writes current frame audio data to the passed in Float32Array and returns its shape. The length of the array can't be more than maxFrameSize.

      Parameters

      • audioFrame: Float32Array

      Returns vec3

      Lens Scripting Version 147

    • Exposes User Data

      Retrieves the current audio frame, converts it to PCM16 (Pulse-Code Modulation) format, and writes the raw audio samples into the provided audioFrame as an Int16Array. The length of the array can’t be more than maxFrameSize.

      Parameters

      • audioFrame: Int16Array

      Returns vec3

      Lens Scripting Version 145

    • Returns the fully-qualified JavaScript type name for this class (for example, "Component.Camera"). This is a static accessor (no instance required) and returns the same value as the instance getTypeName().

      Returns string

      Lens Scripting Version 145

    • Returns true if the object matches or derives from the passed in type.

      Parameters

      • type: string

      Returns boolean

    • Start processing audio from microphone. Useful to avoid redundant processing.

      Returns void

      Lens Scripting Version 145

    • Stop processing audio from microphone.

      Returns void

      Lens Scripting Version 145