在 Audiokinetic 社区问答论坛上,用户可对 Wwise 和 Strata 相关问题进行提问和解答。如需从 Audiokinetic 技术支持团队获取答复,请务必使用技术支持申请单页面。

+1 投票
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
分类:General Discussion | 用户: Jean-Baptiste A. (110 分)

1个回答

0 投票
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)
    {
    }
}
用户: (160 分)
Thanks a lot for your answer !
...