社区问答

欢迎来到 Audiokinetic 社区问答论坛。在此,Wwise 和 Strata 用户可互帮互助。如需我们团队直接提供协助,请前往技术支持申请单页面。若要报告问题,请在 Audiokinetic Launcher 中选择“报告错误”选项(注意,问答论坛并不会接收错误报告)。我们内部设有专门的错误报告系统,会有专人查看报告并设法解决问题。

要想尽快得到满意的解答,请在提问时注意以下几点:

  • 描述尽量具体:比如,想达到什么样的目的,或者具体哪里有问题。
  • 包含关键细节:比如,Wwise 和游戏引擎版本以及所用操作系统等等。
  • 阐明所做努力:阐明自己为了排除故障都采取了哪些措施。
  • 聚焦问题本身:聚焦于问题本身的相关技术细节,以便别人可以快速找到解决方案。

0 投票

I'm trying to grab the Wwise SFX bands in UE5.5 and subsequently visualize him, and I know he needs to use the

AK::SoundEngine::GetSourcePlayPosition

as well as initializing the sound Engine , I've done most of the things but the code always returns AK_PlayingIDNotFound in the Can you help me to solve why?

This is my SoundSubSystem

void UWwiseSubsystem::Initialize(FSubsystemCollectionBase& Collection)
{
    Super::Initialize(Collection);
    //Init Memory Engine
    AkMemSettings MemSettings;
    AK::MemoryMgr::GetDefaultSettings(MemSettings);
    AK::MemoryMgr::Init(&MemSettings);
    AkStreamMgrSettings StreamMgrSettings;
    AK::StreamMgr::GetDefaultSettings(StreamMgrSettings);
    AK::StreamMgr::Create(StreamMgrSettings);
    AkInitSettings InitSettings;
    AkPlatformInitSettings PlatformInitSettings;
    AK::SoundEngine::GetDefaultInitSettings(InitSettings);
    AK::SoundEngine::GetDefaultPlatformInitSettings(PlatformInitSettings);
    AKRESULT Result = AK::SoundEngine::Init(&InitSettings, &PlatformInitSettings);
    GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green, FString::Printf(TEXT("Init Sound Engine : %d"), Result));
}

This is my Component.

int32 UWwiseComponent::GetWwisePlayPosition(int32 playingID)
{
    if (playingID == AK_INVALID_PLAYING_ID)
    {
       UE_LOG(LogTemp, Error, TEXT("Invalid playing ID."));
       return -1;
    }

    if (!AK::SoundEngine::IsInitialized())
    {
       UE_LOG(LogTemp, Error, TEXT("Wwise Sound Engine is not initialized."));
       return -1;
    }
    AkPlayingID playID = playingID;
    AkTimeMs position = 0;
    auto result = AK::SoundEngine::GetSourcePlayPosition(playID, &position);
    
    if (result != AK_Success)
    {
       UE_LOG(LogTemp, Error, TEXT("Failed to get position for Playing ID: %d. Error: %d"), playingID, result);
       return result;
    }

    UE_LOG(LogTemp, Log, TEXT("Current Play Position for Playing ID %d: %d ms"), playingID, position);
    return position;
分类:General Discussion | 用户: の こと (100 分)

Please sign-in or register to answer this question.

...