Merge branch 'audio-events' of https://github.com/Tryibion/FlaxEngine into Tryibion-audio-events

This commit is contained in:
Wojtek Figat
2025-09-23 17:07:18 +02:00
3 changed files with 80 additions and 2 deletions

View File

@@ -167,8 +167,8 @@ void AudioSource::Play()
}
else
{
// Source was nt properly added to the Audio Backend
LOG(Warning, "Cannot play unitialized audio source.");
// Source was not properly added to the Audio Backend
LOG(Warning, "Cannot play uninitialized audio source.");
}
}
@@ -401,6 +401,9 @@ void AudioSource::Update()
_startingToPlay = false;
}
if (Math::NearEqual(GetTime(), _startTime) && _isActuallyPlayingSth && _startingToPlay)
ClipStarted();
if (!UseStreaming() && Math::NearEqual(GetTime(), 0.0f) && _isActuallyPlayingSth && !_startingToPlay)
{
int32 queuedBuffers;
@@ -416,6 +419,7 @@ void AudioSource::Update()
{
Stop();
}
ClipFinished();
}
}
@@ -486,6 +490,7 @@ void AudioSource::Update()
{
Stop();
}
ClipFinished();
}
ASSERT(_streamingFirstChunk < clip->Buffers.Count());

View File

@@ -76,6 +76,16 @@ public:
API_FIELD(Attributes="EditorOrder(10), DefaultValue(null), EditorDisplay(\"Audio Source\")")
AssetReference<AudioClip> Clip;
/// <summary>
/// Event fired when the audio clip starts.
/// </summary>
API_EVENT() Action ClipStarted;
/// <summary>
/// Event fired when the audio clip finishes.
/// </summary>
API_EVENT() Action ClipFinished;
/// <summary>
/// Gets the velocity of the source. Determines pitch in relation to AudioListener's position. Only relevant for spatial (3D) sources.
/// </summary>