Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

+1 vote
Hello,

I'm trying to use AkSoundEngine.GetSourcePlayPosition in Unity. I'd like to display the PlayPosition in the console first, as a test.

Unfortunately I'm always getting an "AK_PlayingIDNotFound" as a result of AkSoundEngine.GetSourcePlayPosition. Also the playPosition is 0.

(I've try to follow this example : https://www.audiokinetic.com/en/library/edge/?source=SDK&id=soundengine_query_pos.html )

Here is my code :

public class Audio_Sphere : MonoBehaviour
{
    public uint eventID;
    public static uint playingID;
    public int playPosition;
   
    void Start()
    {
        playingID = AkSoundEngine.PostEvent(eventID, gameObject, (uint)AkCallbackType.AK_EnableGetSourcePlayPosition, null, null);  
    }

    
    void Update()
    {
        AKRESULT testResult = AkSoundEngine.GetSourcePlayPosition(playingID, out playPosition);

        Debug.Log(testResult);

        Debug.Log(playPosition);
    }

}

 

When I use the playingID for something else ( like "AkSoundEngine.StopPlayingID" ) it works.

If someone could tell me what's wrong with my code it would be nice

Thanks
in General Discussion by Jean-Baptiste A. (110 points)

1 Answer

0 votes
Hello,

This is a strange place. You only need to add an empty callback function to the fourth parameter, as shown below.

 

public class NewBehaviourScript : MonoBehaviour
{
    uint bnvb=3;
    uint[] bnvbs=new uint[3];
    // Start is called before the first frame update
    void Start()
    {
        AkBankManager.LoadBank("New_SoundBank", false, false);
        bnvb = AkSoundEngine.PostEvent("Play_Falcom_Sound_Team_J_D_K________", this.gameObject, 0x100000, MusicCallBack,null);
        //AkSoundEngine.PostEvent("Play_Falcom_Sound_Team_J_D_K________", this.gameObject,AkCallbackType.AK_EnableGetSourcePlayPosition, null, null);
        Debug.Log(bnvb);
    }

    // Update is called once per frame
    void Update()
    {
        int dt=1;
        Debug.Log(AkSoundEngine.GetSourcePlayPosition(bnvb, out dt));
        Debug.Log(dt);
    }
    void MusicCallBack(object in_cookie, AkCallbackType in_type, object in_info)
    {
    }
}
by (160 points)
Thanks a lot for your answer !
...