社区问答

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

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

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

+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 !
...