【UE4 C++】播放声音与控制音量

播放声音

  • PlaySoundAtLocation()

    USoundCue* HitSound = LoadObject<USoundCue>(this, TEXT("SoundCue'/Game/Demo_Drone/Sound/explore_Cue.explore_Cue'"));
    if (HitSound)
    {
    UGameplayStatics::PlaySoundAtLocation(this, HitSound,SweepResult.Location);
    }
    
  • PlaySound2D()

    UGameplayStatics::PlaySound2D(GetWorld(), HitSound)
    
  • 使用组件

    • static UAudioComponent* SpawnSound2D()
    • static UAudioComponent* CreateSound2D()
    • static UAudioComponent* SpawnSoundAtLocation()
    • static UAudioComponent* SpawnSoundAttached()
  • slate 中播放声音

    FSlateApplication::Get().PlaySound(MenuStyle->MenuBGM);
    

控制音量

  • 加载USoundCue资源 直接改变 USoundCue::VolumeMultiplier

    FSlateSound 资源亦可以强转

    USoundCue* sound= Cast<USoundCue>(MenuStyle->StartGameSound.GetResourceObject());
    sound->VolumeMultiplier = SoundVolume;
    
  • 通过 FAudioDevice、USoundMix、USoundClass

    • Conten 下创建 USoundClass 、USoundMix资源
    • USoundMix资源属性中添加 Sound Class Effects 元素,元素为刚创建的USoundClass 资源
    • Sound Wave 资源属性中设置 Sound Class 为刚创建的 USoundClass
    • C++ 实现
    // .h定义
    class USoundMix* SoundMix;
    class USoundClass* MusicClass;
    class USoundClass* SoundClass;
    class FAudioDevice* AudioDevice;
    
    //.cpp 调用 初始化
    MusicClass = LoadObject<USoundClass>(nullptr,TEXT("SoundClass'/Game/Blueprints/Sound/MusicClass.MusicClass'"));
    SoundClass = LoadObject<USoundClass>(nullptr,TEXT("SoundClass'/Game/Blueprints/Sound/SoundClass.SoundClass'"));
    SoundMix = LoadObject<USoundMix>(nullptr,TEXT("SoundMix'/Game/Blueprints/Sound/SoundMix.SoundMix'"));
    AudioDevice = GEngine->GetMainAudioDeviceRaw();
    AudioDevice->PushSoundMixModifier(SoundMix);
    
    //.cpp 调用 改变音量
    AudioDevice->SetSoundMixClassOverride(SoundMix, MusicClass, MusicVolume, 1.f, 0.2f, false);
    AudioDevice->SetSoundMixClassOverride(SoundMix, SoundClass, SoundVolume, 1.f, 0.2f, false);
    

原文链接: https://www.cnblogs.com/shiroe/p/15632027.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    【UE4 C++】播放声音与控制音量

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/215381

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午2:47
下一篇 2023年2月13日 上午2:47

相关推荐