/get-user-media-mock

Mock library for getUserMedia and related functions.

Primary LanguageJavaScriptMIT LicenseMIT

Description

Mock library for getUserMedia and related functions.

Installation

npm install @theopenweb/get-user-media-mock

Usage

The code below will automatically apply mocks to the following functions:

  • navigator.getUserMedia
  • navigator.mediaDevices.getUserMedia
  • navigator.mediaDevices.enumerateDevices
  • navigator.mediaDevices.getSupportedConstraints
window.getUserMediaMock = new GetUserMediaMock();
getUserMediaMock.mock();

The code below will only apply mock stream if getUserMedia function(navigator.getUserMedia OR navigator.mediaDevices.getUserMedia) results in an error.

window.getUserMediaMock = new GetUserMediaMock();
getUserMediaMock.fallbackMock();

For more advanced usage check [Functions].

Functions

All functions below are on the main instance. Type information uses TypeScript format. Types can be searched in the repository.

  • setMediaUrl (url: string)
  • setMockType (mockType: MockType)
  • fallbackMock ()
  • mock (options: MockOptions)
  • restoreOldHandles ()
  • getMockStreamFromConstraints
  • getMockCanvasStream (constraints: MediaStreamConstraints)
  • getMockMediaElementStream (constraints: MediaStreamConstraints)
  • createStartedRandomCanvasDrawerInterval (canvas: HTMLCanvasElement)
  • getConstraintBestValue (constraints: MediaStreamConstraints, type: MediaStreamTrackType, key: keyof MediaTrackConstraints)
  • getMockDevices ()

Support

Polyfills and transpiling(Babel, etc.) should be done outside of this library.

Dependencies

Test

npx http-server ./
# http://localhost:8080

Test Media

Test Media are included for testing AND possibly mocking. These media are not heavily depended on, so can be changed or removed if important. If using build tools, the sizes should not be an issue. If there is an issue when building please contact.