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.