API Documentation

BFileGameSound

BFileGameSound

If you want to play back audio from a disk file, such as background music, or low-priority sound effects, BFileGameSound is for you.

Keep in mind that if the sound needs to play at precise moments, or latency is an issue, that BFileGameSound may not be appropriate for your needs.

Using BFileGameSound is easy, and it supports automatically looping sounds. The following code snippet starts up the theme music for the hot new game “Mystery Warriors From the Doomed Planet Z”:

BFileGameSound themeSong("music/theme.aif", true);
themeSong.StartPlaying();

This starts up a looped sound from the file music/theme.aif. If you want the theme to only play through once, just specify false instead of true for the looping argument to the BFileGameSound constructor.

You can pause the BFileGameSound by calling SetPaused():

themeSong.SetPaused(true, 0);

This pauses the sound, effective immediately. The pause can optionally be ramped, so that the sound slows down or speeds up to reach the new setting. For example:

themeSong.SetPaused(true, 2);

This causes the sound to slow down over the course of two seconds, until it’s stopped.

The inverse is also possible:

themeSong.SetPaused(false, 0);

This resumes playback immediately. You can ramp the resume by specifying a non-zero value for the ramp time.

BFileGameSound uses the BMediaFile class to access the sound file. If BMediaFile can’t identify the sound, the file is assumed to contain raw 44.1kHz, 16-bit stereo.