npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

com.hecomi.umicrophonewebgl

v1.0.0

Published

Enables microphone input buffer access in Unity WebGL builds

Downloads

277

Readme

uMicrophoneWebGL

uMicrophoneWebGL enables microphone input buffer access in Unity WebGL builds.

Demo

Recorder

Waveform

Installation

  • Unity Package
  • 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.

MicrophoneWebGL Component

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.

API Reference

MicrophoneWebGL component provides the following properties and methods:

Variables / Properties

  • 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<Device> devices { get; }

    • 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.

Methods

  • 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.