Enables microphone input buffer access in Unity WebGL builds
npm install com.hecomi.umicrophonewebgluMicrophoneWebGL
================
uMicrophoneWebGL enables microphone input buffer access in Unity WebGL builds.


- Unity Package
- Download the latest .unitypackage from the Release page.
- Git URL (UPM)
- Add https://github.com/hecomi/uMicrophoneWebGL.git#upm to the Package Manager.
- Scoped Registry (UPM)
- Add a scoped registry to your project.
- URL: https://registry.npmjs.com
- Scope: com.hecomi
- Install uMicrophoneWebGL in the Package Manager.
Attach MicrophoneWebGL component to a GameObject. Once attached, the following UI will be displayed:

- Is Auto Start
- When checked, data collection from the microphone starts automatically at launch.
- Devices
- Called when a list of devices is constructed.
- Internally managed by indices (int).
- It's often unclear which device the user has selected, so it is advised to use this only for debugging purposes. Instead, provide a device selection UI at runtime, as demonstrated in the Recorder example.
- Events
- Various events can be captured:
- Ready Event
- Called once after initialization on the JavaScript side and everything is ready.
- Device List Event
- Called when the device list is constructed.
- A list containing device information is passed as an argument.
- Start Event
- Called when a microphone starts.
- Internally, this corresponds to the completion of navigator.mediaDevices.getUserMedia().
- End Event
- Called when a microphone stops.
- Data Event
- Called when microphone input buffer data is retrieved.
- An array of float waveform data is passed as an argument.
MicrophoneWebGL component provides the following properties and methods:
- bool isAutoStart
- Corresponds to the Is Auto Start option in the UI. If true, the microphone starts automatically at launch.
- int micIndex
- Index of the selected microphone device.
- TimingEvent readyEvent
- Event triggered when the microphone is ready after initialization.
- TimingEvent startEvent
- Event triggered when the microphone starts recording.
- TimingEvent stopEvent
- Event triggered when the microphone stops recording.
- DeviceListEvent deviceListEvent
- Event triggered when the list of available devices is updated.
- DataEvent dataEvent
- Event triggered when microphone data is available.
- bool isValid { get; }
- Indicates whether the microphone is in a valid state to be used.
- List
- List of available microphone devices.
- Device selectedDevice { get; }
- Information about the currently selected microphone device.
- bool isRecording { get; }
- Indicates whether the microphone is currently recording.
- void Begin()
- Starts the microphone. Does nothing if the microphone is recording.
- void End()
- Stops the microphone. Does nothing if the microphone is not recording.
- void RefreshDeviceList()
- Refreshes the list of microphone devices. The Device List Event is triggered again at the end of the update.