# AudioModule

The `AudioModule` class enables sound effects.

## Example

```
//==============================================================================
// The following example demonstrates how to control audio playback by tapping
// on the screen.
//
// Project setup:
// - Import an audio file (M4A, Mono, 44.1kHz, 16 bit)
// - Create an audio playback controller and set the audio to the imported file
// - Insert a speaker and set the audio to the playback controller
// - Add the Tap Gesture capability to the project under Touch Gestures
//==============================================================================

// Load in the required modules
const Audio = require('Audio');
const TouchGestures = require('TouchGestures');

// Locate the playback controller in the Assets
const playbackController =
Audio.getPlaybackController('Audio Playback Controller');

// Play and loop the playback controller
playbackController.setPlaying(true);
playbackController.setLooping(true);

//==============================================================================
// Start and stop the audio by tapping on the screen
//==============================================================================

// Create a boolean to determine if the audio is playing
var isAudioPlaying = true;

// Subscribe to tap gestures on the screen
TouchGestures.onTap().subscribe(function() {

  // Switch the boolean controlling audio playback
  isAudioPlaying = !isAudioPlaying;

  // Start or stop the audio depending on the state of the boolean
  playbackController.setPlaying(isAudioPlaying);

});
```

## Properties

This module exposes no properties.

## Methods

| Method                  | Description                                                                                                                                  |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `getPlaybackController` | `getPlaybackController(name: String): PlaybackController` Get a playback controller from assets by name.                                     |
| `play`                  | <p><code>play(audioSource: AudioSource): void</code></p><p>Creates a new playing instance of the sound associated with this AudioSource.</p> |
| `stopAll`               | <p><code>stopAll(audioSource: AudioSource): void</code></p><p>Stops all playing instances of this AudioSource.</p>                           |

## Classes

| Class                                                                                                                | Description                                                       |
| -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [`PlaybackController`](https://sparkar.facebook.com/docs/ar-studio/reference/classes/audiomodule.playbackcontroller) | The `PlaybackController` class enables control of audio playback. |
