Skip to content

A tiny JavaScript library that can be used to detect WebRTC features e.g. system having speakers, microphone or webcam, screen capturing is supported, number of audio/video devices etc. https://www.webrtc-experiment.com/DetectRTC/

Notifications You must be signed in to change notification settings

pasichnichenko/DetectRTC

 
 

Repository files navigation

npm downloads Build Status: Linux

A tiny JavaScript library that can be used to detect WebRTC features e.g. system having speakers, microphone or webcam, screen capturing is supported, number of audio/video devices etc.

It is MIT Licenced, which means that you can use it in any commercial/non-commercial product, free of cost.

npm install detectrtc

# or
bower install detectrtc

Check all releases

Latest stable release is: 1.0.9

Proposed NEW API

DetectRTC.isSetSinkIdSupported                  // (implemented)
DetectRTC.isRTPSenderReplaceTracksSupported     // (implemented)
DetectRTC.isORTCSupported                       // (implemented)
DetectRTC.isRemoteStreamProcessingSupported     // (implemented)

# Below API are NOT implemented yet
DetectRTC.browser.googSupportedFlags.googDAEEchoCancellation
DetecRTC.browser.googSupportedFlags.echoCancellation
DetectRTC.isMediaHintsSupportsNewSyntax

Test in LocalHost

node server.js    

// and open:   
127.0.0.1:9001 

// or 
http://localhost:9001

To use it:

<script src="./node_modules/detectrtc/DetectRTC.js"></script>

<!-- or CDN link -->
<script src="//cdn.webrtc-experiment.com/DetectRTC.js"></script>

How to use it?

DetectRTC.load(function() {
    // DetectRTC.hasWebcam (has webcam device!)
    // DetectRTC.hasMicrophone (has microphone device!)
    // DetectRTC.hasSpeakers (has speakers!)
    // DetectRTC.isScreenCapturingSupported
    // DetectRTC.isSctpDataChannelsSupported
    // DetectRTC.isRtpDataChannelsSupported
    // DetectRTC.isAudioContextSupported
    // DetectRTC.isWebRTCSupported
    // DetectRTC.isDesktopCapturingSupported
    // DetectRTC.isMobileDevice
    // DetectRTC.isWebSocketsSupported
    
    // DetectRTC.osName
    
    // DetectRTC.browser.name === 'Edge' || 'Chrome' || 'Firefox'
    // DetectRTC.browser.version
    // DetectRTC.browser.isChrome
    // DetectRTC.browser.isFirefox
    // DetectRTC.browser.isOpera
    // DetectRTC.browser.isIE
    // DetectRTC.browser.isSafari
    // DetectRTC.browser.isEdge

    // DetectRTC.isCanvasSupportsStreamCapturing
    // DetectRTC.isVideoSupportsStreamCapturing

    // DetectRTC.DetectLocalIPAddress(callback)
});

Why load method?

If you're not detecting audio/video input/outupt devices then you can skip this method.

DetectRTC.load simply makes sure that all devices are captured and valid result is set for relevant properties.

Rules to Contribute

git clone --depth=50 --branch=development git://github.com/muaz-khan/DetectRTC.git muaz-khan/DetectRTC

# install all dependencies
[sudo] npm install

# install grunt for code style verifications
[sudo] npm install grunt-cli
[sudo] npm install grunt

# verify your changes
npm test  # or "grunt"

# Success? Make a pull request!

License

DetectRTC.js is released under MIT licence . Copyright (c) Muaz Khan.

About

A tiny JavaScript library that can be used to detect WebRTC features e.g. system having speakers, microphone or webcam, screen capturing is supported, number of audio/video devices etc. https://www.webrtc-experiment.com/DetectRTC/

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 74.8%
  • HTML 25.2%