我正在從事Sound Handling的工作,但我遇到了很大的問題。 我想要達到的是獲得播放時間(聲音播放到現在的時間,例如我有10秒的聲音,3秒後我會播放,所以我應該得到7的值)。這是我目前的功能:UE4在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;
}
然而,當我試圖使用它,發動機整體崩潰,我收到此錯誤:
Assertion failed: IsInAudioThread()
myaudioclass.cpp:173
myaudioclass.h:41
錯誤行是爲了:
if (ActiveSound) //173
GENERATED_BODY() //41
我在這裏做錯了什麼?如果有人是那種幫助我,我真的很感激:3