最近、サウンドハンドリングに取り組んでいますが、大きな問題が発生しました。 私が達成したいのは、再生時間を得ることです(例えば、今までに再生された音の長さ、例えば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