Ich arbeite in letzter Zeit an Sound Handling, aber ich habe großes Problem festgestellt. Was ich erreichen möchte, ist die Wiedergabezeit (wie lange der Sound bisher gespielt wurde, zum Beispiel habe ich 10 Sekunden Sound und ich füge ihn nach 3 Sekunden ein, also sollte ich den Wert 7 zurück bekommen). Dies ist meine aktuelle Funktion:UE4 Wiedergabezeit in C++
float MyAudioClass::GetPlaybackTime(UAudioComponent* AComponent, float &PlaybackTime)
{
if (AComponent)
{
FAudioDevice* AudioDevice = AComponent->GetAudioDevice();
if (AudioDevice)
{
FActiveSound* ActiveSound = AudioDevice->FindActiveSound(AComponent->GetAudioComponentID());
if (ActiveSound)
{
PlaybackTime = ActiveSound->PlaybackTime;
return PlaybackTime;
}
return 0;
}
return 0;
}
return 0;
}
Allerdings, wenn ich versuche es, ganzer Motor Abstürze zu verwenden und ich empfange diesen Fehler:
Assertion failed: IsInAudioThread()
myaudioclass.cpp:173
myaudioclass.h:41
Fehlerlinien sind in dieser Reihenfolge:
if (ActiveSound) //173
GENERATED_BODY() //41
Was mache ich hier falsch? Wenn mir jemand hilft, würde ich das sehr schätzen: 3