0
我不能完全理解它,所以我在這裏問。我正在用下面的函數生成AudioComponent。它附加了10秒SoundCue。然後我在2秒鐘後暫停,並將延時設置爲30秒。然後我想解除我的聲音。問題是,我的調度員在它之前觸發,我的聲音甚至不能被取消暫停。它被破壞了嗎?有什麼辦法來防止它?聲音實際完成之前OnSoundFinished觸發器
UAudioComponent* MyAudioClass::LatentSound2D(UObject* WorldContextObject, struct FLatentActionInfo LatentInfo, class USoundBase* Sound, float VolumeMultiplier, float PitchMultiplier, float StartTime, class USoundConcurrency* ConcurrencySettings, bool bPersistAcrossLevelTransition)
{
MyAudioClassObject= NewObject<MyAudioClass>();//handle needed to bind delegate
UAudioComponent* AudioComponent = UGameplayStatics::CreateSound2D(WorldContextObject, Sound, VolumeMultiplier, PitchMultiplier, StartTime);//Create AudioComponent
MyAudioClassObject->BindDelegate(AudioComponent);//Bind delegate to AudioComponent
AudioComponent->bAutoDestroy = false;
AudioComponent->bAllowAnyoneToDestroyMe = false;
AudioComponent->AddToRoot();
AudioLatentBind(WorldContextObject, LatentInfo, AudioComponent); //add latent action for this audio component (wait till it ends)
return AudioComponent;
}
代表我綁定的OnAudioFinished。如果有什麼不清楚的地方,請讓我知道。我真的需要它幫助:(這是怎麼看起來像藍圖
你可以*至少*告訴我們你正在使用哪個庫提供這些類...我們不介意讀者。 –
I我只是檢查了這一點,似乎我的AudioComponent得到停止,這就是爲什麼OnAUdioFinished射擊。但是我不知道我怎麼能阻止這個stop()調用。 –
當然 '的#include 「MyProjectCodeFunctionLibrary.h」 的#include 「GameFramework/Actor.h」 的#include 「Object.h」 的#include 「AudioDevice.h」 的#include 「ActiveSound.h」 的#include「LatentActions.h 「 #include」MyAudioClass.generated.h「' 這些都是我包含的文件。適合亂七八糟我很新,在這裏真的不知道什麼信息對其他人是有價值的 –