Aria: ArSoundPlayer Class Reference

- Main Page
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# ArSoundPlayer Class Reference

`#include <ArSoundPlayer.h>`

List of all members.

## Detailed Description

This class provides a cross-platform interface for playing short sound samples. (Currently implemented for Windows and Linux).

See also:
  For I/O and network transfer of encoded audio, see the ArNetAudio library.

  ArSoundsQueue

Note:
  Uses an external program to play WAV files on Linux. If an environment variable named PLAY_WAV is set, that program is used, otherwise, 'play' from the 'sox' toolset is used. PLAY_WAV must contain one word (the command; no arguments) A call to playWavFile() will return immediately after 'play' has finished, even though Linux may still be playing back the sound data. In general, this kind of thing is a problem, especially with speech recognition immediately after playing a sound. Ideally, we should be able to truly block until the sound has finished playback. Alas, it is not an ideal world. Another potential pitfall due to the use of an external program invocation: the program you call must not attempt to issue any output. 'play' from the 'sox' toolset automatically supresses normal output if it isn't called from an interactive terminal, but it may still issue some error messages, which will cause it to hang indefinately.

## Static Public Member Functions
static ArRetFunctor2< bool, const char *, const char * > * | getPlayWavFileCallback ()
static ArFunctor * | getStopPlayingCallback ()
static bool | playNativeFile (const char *filename, const char *params)
static bool | playSoundPCM16 (char *data, int numSamples)
static bool | playWavFile (const char *filename, const char *params)
static void | stopPlaying ()
## Static Protected Attributes
static int | myPlayChildPID
| Only used on Linux.
static ArGlobalRetFunctor2< bool, const char *, const char * > | ourPlayWavFileCB
static ArGlobalFunctor | ourStopPlayingCB

## Member Function Documentation

static ArRetFunctor2<bool, const char*, const char*>* ArSoundPlayer::getPlayWavFileCallback | ( |  | ) | `[static]`

Return the static functor for playWavFile

static ArFunctor* ArSoundPlayer::getStopPlayingCallback | ( |  | ) | `[static]`

Return the static functor for stopPlaying().

static bool ArSoundPlayer::playNativeFile | ( | const char * | filename,
|  | const char * | params |
| ) |  |  | `[static]`

Play a file in some native file format for the compilation platform.

static bool ArSoundPlayer::playSoundPCM16 | ( | char * | data,
|  | int | numSamples |
| ) |  |  | `[static]`

Play raw uncompressed PCM16 sound data. The format of this data is numSamples samples of two bytes each. Each byte pair is a signed little endian integer. The sound will be played back at 16kHz, monaurally.

Returns:
  false on error, true on success.

static bool ArSoundPlayer::playWavFile | ( | const char * | filename,
|  | const char * | params |
| ) |  |  | `[static]`

Play a WAV (Windows RIFF) file

Note:
  Uses an external program to play WAV files on Linux. If an environment variable named PLAY_WAV is set, that program is used, otherwise, 'play' from the 'sox' toolset is used. See detailed note in the overview for this cass.

Parameters:

  | filename | Name of the file to play
  | params | ignored

static void ArSoundPlayer::stopPlaying | ( |  | ) | `[static]`

Cancel (interrupt) any current sound or file playback.

The documentation for this class was generated from the following file:

- ArSoundPlayer.h