/angular-audio-context

An AngularJS wrapper for Web Audio API's AudioContext

Primary LanguageJavaScript

angular-audio-context

An AngularJS wrapper for the Web Audio API's AudioContext.

tests dependencies version

Besides being a wrapper this module also patches the deprecated and prefixed versions of the AudioContext which are out there. It uses the standardized-audio-context to do so.

This module is intended to be used with Browserify like this:

var audioContext = require('angular-audio-context');

angular
  .module('my-app', [audioContext.name])
  .controller('ExampleCtrl', ['audioContextService', function (audioContextService) {

    // do something with the audioContextService instance ...

}]);

In addition to the audioContextService, which is essentially an instantiated AudioContext, this module also provides an extra property called isSupported. It is a boolean value that indicates if the currently used browser supports the Web Audio API's AudioContext or not. An example usage might look like this:

angular
    .module('your-module', [])
    .config(function (audioContextServiceProvider, $provide) {
        $provide.constant('audioContextIsSupported', audioContextServiceProvider.isSupported);
    })
    .controller('YourController', ['audioContextIsSupported', function (audioContextIsSupported) {

        this.audioContextIsSupported = audioContextIsSupported;

    });
<div ng-controller="YourController as ctrl" ng-if="!ctrl.audioContextIsSupported">
    <span>Sorry AudioContext is not supported.</span>
</div>

In case you are missing a feature or found a bug just fork this repository or raise an issue. Thanks.

There is also module called ngWebAudio which tries to simplify the buffering and playback of a single audio file by utilizing the Web Audio API.

The naming of this module tries to align with the recommendations given in the Specification for reusable AngularJS components.