Dokumentation        Tutorials        Framework-Header

Soundeffekte und Hintergrundmusik

Initialisieren und Beenden des Audio Frameworks:

Load_SoundSettings_And_Init_Audio(
"AudioSettings.txt"
);

[...]

Shutdown_Audio();





Soundeffekte statisch in den Speicher laden und wieder freigeben:

/*
// Soundeffekte einzeln laden:
Set_MaxNumberOfSoundEffects(10);
Add_New_SoundEffect(0, "../SoundAndMusic/DistantCollision1.wav",
                    5, 60.0f, 1.0f, 1.0f, 0);
Add_New_SoundEffect(1, "../SoundAndMusic/DistantCollision2.wav",
                    5, 60.0f, 1.0f, 1.0f, 0);
[...]
*/

// alle Soundeffekte laden, die in der Datei
SoundEffects.txt aufgelistet
// sind:

Load_SoundEffectList("../SoundAndMusic/SoundEffects.txt",
                     "../SoundAndMusic/");

[...]

Delete_SoundEffectList();


Musik-Trackliste laden und freigeben:


MusicTracks = new CMusicTracks;
MusicTracks->Load_TrackList("../SoundAndMusic/MusicTracks.txt",
                            "../SoundAndMusic/");

[...]

SAFE_DELETE(MusicTracks)


Musik abspielen (Audio Streaming), zufälligen Titel aus der Trackliste auswählen:

MusicTracks->Start_RandomMusicTrack();

[...]

// neuen Titel auswählen und abspielen, wenn der vorangehende Titel beendet
// ist:

MusicTracks->Update();


Soundeffekt positionieren und mit aktuell gewähltem Reverb-Effekt abspielen:

// Kollision:
absDistance = fabs(Asteroid[Asteroid_ID2].PlayerViewDirectionDistance);

if(absDistance < g_Max3DSoundDistance)
{
if(absDistance < g_MaxImmediate3DSoundDistance)
{
    SoundEffectID = lrnd(0, 2);
    SourceID = Play_SoundEffect_Immediately(&g_matView, SoundEffectID,
               &Asteroid[Asteroid_ID2].CameraSpacePosition,
               &g_NullVector, true /*Reverb*/);
}
else
{
    SoundEffectID = lrnd(0, 2);
    SourceID = Play_SoundEffect(&g_matView, SoundEffectID,
               &Asteroid[Asteroid_ID2].CameraSpacePosition,
               &g_NullVector, true /*Reverb*/);
}
}