Community Q&A

Welcome to Audiokinetic’s community-driven Q&A forum. This is the place where Wwise and Strata users help each other out. For direct help from our team, please use the Support Tickets page. To report a bug, use the Bug Report option in the Audiokinetic Launcher. (Note that Bug Reports submitted to the Q&A forum will be rejected. Using our dedicated Bug Report system ensures your report is seen by the right people and has the best chance of being fixed.)

To get the best answers quickly, follow these tips when posting a question:

  • Be Specific: What are you trying to achieve, or what specific issue are you running into?
  • Include Key Details: Include details like your Wwise and game engine versions, operating system, etc.
  • Explain What You've Tried: Let others know what troubleshooting steps you've already taken.
  • Focus on the Facts: Describe the technical facts of your issue. Focusing on the problem helps others find a solution quickly.

0 votes

I am trying to convince my team to use wwise for a future project. They asked if they could get the time of a currently playing song from wwise. Is this possible? How?

 

I found this in the documentation but he pointed out the optimized/release configuration returning 0:

Get the time stamp shown in the capture log along with monitoring messages.

Returns

Time stamp in milliseconds. In optimized/release configuration, this function returns 0.

AkTimeMs __cdecl AK::Monitor::GetTimeStamp( ) 
in General Discussion by Buck (110 points)

1 Answer

0 votes

Hi Buck,
As I know,Wwise provides an IntegrationDemo with rich example code in the SDK.
It seems that the feature you want to know about happens to have a page dedicated to it.
I've taken one of the codes and put it below.

The main API for your goal is AK::SoundEngine::GetSourcePlayPosition( m_iPlayingID, &uPosition );
You can run the already compiled IntegrationDemo in the SDK and look at the code to see how to implement it.
Code Address... \Wwise2019.2.6.7381\SDK\samples\IntegrationDemo\DemoPages\...

void DemoMusicCallbacks::Draw()

{

    DemoMusicCallbacksBase::Draw();

 

    if ( m_bIsPlaying )

    {

        char strBuf[50];

        int iPosX = m_pParentMenu->GetWidth() / 4;

        int iPosY = m_pParentMenu->GetHeight() / 3;

 

        AkTimeMs uPosition;

 

        // Get the current play position and store it in a string buffer

        AK::SoundEngine::GetSourcePlayPosition( m_iPlayingID, &uPosition );

        snprintf( strBuf, 50"Bar: %d\nBeat: %d\nPosition=%d", (int)m_uiBarCount, (int)m_uiBeatCount, (int)uPosition );

 

        // Draw the play position and subtitles

        DrawTextOnScreen( strBuf, iPosX, iPosY, DrawStyle_Text );

    }

}

It was written in C++ so there should be not many difference,

Hope this helps :)

by Hou Chenzhong (Audiokinetic) (6.0k points)
...