RenderAudio() public static method

public static RenderAudio ( ) : AKRESULT
return AKRESULT
Ejemplo n.º 1
0
    void Terminate()
    {
        if (ms_Instance == null || ms_Instance != this || !AkSoundEngine.IsInitialized())
        {
            return;             //Don't term twice
        }
        // Mop up the last callbacks that will be sent from Term with blocking.
        // It may happen that the term sends so many callbacks that it will use up
        // all the callback memory buffer and lock the calling thread.

        // WG-25356 Thread is unsupported in Windows Store App API.

        AkSoundEngine.StopAll();
        AkSoundEngine.RenderAudio();
        const double IdleMs       = 1.0;
        const uint   IdleTryCount = 50;

        for (uint i = 0; i < IdleTryCount; i++)
        {
            AkCallbackManager.PostCallbacks();
            using (EventWaitHandle tmpEvent = new ManualResetEvent(false)) {
                tmpEvent.WaitOne(System.TimeSpan.FromMilliseconds(IdleMs));
            }
        }

        AkSoundEngine.Term();

        ms_Instance = null;

        AkCallbackManager.Term();
    }
        public void SetLanguageAndReloadLocalizedBanks(string language)
        {
            var banksToReload = new List <WwiseAddressableSoundBank>();

            foreach (var bank in m_AddressableBanks.Values)
            {
                if (bank.currentLanguage == "SFX" || bank.currentLanguage == language)
                {
                    continue;
                }
                banksToReload.Add(bank);
            }
            if (banksToReload.Count == 0)
            {
                return;
            }
            foreach (var bank in banksToReload)
            {
                UnloadBank(bank, ignoreRefCount: true, removeFromBankDictionary: true);
            }
            UnloadInitBank();
            AkSoundEngine.SetCurrentLanguage(language);
            AkSoundEngine.RenderAudio();
            LoadInitBank();

            foreach (var bank in banksToReload)
            {
                LoadBank(bank, bank.decodeBank, bank.saveDecodedBank);
            }
        }
Ejemplo n.º 3
0
 private void AudioInitialisation()
 {
     sfx_mainBankLoader();
     sfx_startAmb();
     sfx_startSeagul();
     AkSoundEngine.RenderAudio();
 }
Ejemplo n.º 4
0
    private static void DoActionOnEvent(string eventName, AkActionOnEventType action, int fadeout)
    {
        uint eventID = AkSoundEngine.GetIDFromString(eventName);

        //default curve of event action is log, but can change later
        AkSoundEngine.ExecuteActionOnEvent(eventID, action, Instance.gameObject, fadeout, AkCurveInterpolation.AkCurveInterpolation_Log1);
        AkSoundEngine.RenderAudio();
    }
Ejemplo n.º 5
0
 private void LateUpdate()
 {
     if (ms_Instance != null)
     {
         AkCallbackManager.PostCallbacks();
         AkSoundEngine.RenderAudio();
     }
 }
Ejemplo n.º 6
0
 private void InitializeAudio()
 {
     AkSoundEngine.LoadBank("MX", AkSoundEngine.AK_DEFAULT_POOL_ID, out bankID);
     AkSoundEngine.LoadBank("SFX", AkSoundEngine.AK_DEFAULT_POOL_ID, out bankID);
     StartMusic();
     StartAmbiance();
     AkSoundEngine.RenderAudio();
 }
Ejemplo n.º 7
0
 private void PlaySound(string eventName, GameObject obj)
 {
     if (eventName == null || eventName == "")
     {
         return;
     }
     AkSoundEngine.PostEvent(eventName, obj);
     AkSoundEngine.RenderAudio();
 }
Ejemplo n.º 8
0
 private void LateUpdate()
 {
     if (AkInitializer.ms_Instance != null)
     {
         AkCallbackManager.PostCallbacks();
         AkBankManager.DoUnloadBanks();
         AkSoundEngine.RenderAudio();
     }
 }
Ejemplo n.º 9
0
 //Use LateUpdate instead of Update() to ensure all gameobjects positions, listener positions, environements, RTPC, etc are set before finishing the audio frame.
 void LateUpdate()
 {
     //Execute callbacks that occured in last frame (not the current update)
     if (ms_Instance != null)
     {
         AkCallbackManager.PostCallbacks();
         AkSoundEngine.RenderAudio();
     }
 }
Ejemplo n.º 10
0
 //Use LateUpdate instead of Update() to ensure all gameobjects positions, listener positions, environements, RTPC, etc are set before finishing the audio frame.
 void LateUpdate()
 {
     //Execute callbacks that occured in last frame (not the current update)
     if (ms_Instance != null)
     {
         AkCallbackManager.PostCallbacks();
         AkBankManager.DoUnloadBanks();
         AkAudioListener.DefaultListeners.Refresh();
         AkSoundEngine.RenderAudio();
     }
 }
    public void Terminate()
    {
#if UNITY_EDITOR
        ClearInitializeState();

        if (!IsSoundEngineLoaded)
        {
            return;
        }
#endif

        if (!AkSoundEngine.IsInitialized())
        {
            return;
        }

        // Stop everything, and make sure the callback buffer is empty. We try emptying as much as possible, and wait 10 ms before retrying.
        // Callbacks can take a long time to be posted after the call to RenderAudio().
        AkSoundEngine.StopAll();
        AkSoundEngine.ClearBanks();
        AkSoundEngine.RenderAudio();
        var retry = 5;
        do
        {
            var numCB = 0;
            do
            {
                numCB = AkCallbackManager.PostCallbacks();

                // This is a WSA-friendly sleep
                using (System.Threading.EventWaitHandle tmpEvent = new System.Threading.ManualResetEvent(false))
                {
                    tmpEvent.WaitOne(System.TimeSpan.FromMilliseconds(1));
                }
            }while (numCB > 0);

            // This is a WSA-friendly sleep
            using (System.Threading.EventWaitHandle tmpEvent = new System.Threading.ManualResetEvent(false))
            {
                tmpEvent.WaitOne(System.TimeSpan.FromMilliseconds(10));
            }

            retry--;
        }while (retry > 0);

        AkSoundEngine.Term();

        // Make sure we have no callbacks left after Term. Some might be posted during termination.
        AkCallbackManager.PostCallbacks();

        AkCallbackManager.Term();
        AkBankManager.Reset();
    }
    public void LateUpdate()
    {
        //Execute callbacks that occurred in last frame (not the current update)
        AkCallbackManager.PostCallbacks();
        AkBankManager.DoUnloadBanks();

        if (Application.isPlaying)
        {
            AkAudioListener.DefaultListeners.Refresh();
        }

        AkSoundEngine.RenderAudio();
    }
    public void LateUpdate()
    {
#if UNITY_EDITOR
        if (!IsSoundEngineLoaded)
        {
            return;
        }
#endif

        //Execute callbacks that occurred in last frame (not the current update)
        AkCallbackManager.PostCallbacks();
        AkSoundEngine.RenderAudio();
    }
Ejemplo n.º 14
0
    IEnumerator AtStartOfGame()
    {
        yield return(new WaitForEndOfFrame());

        Scene = SceneManager.GetActiveScene().name;
        if (Scene == "Splash")
        {
            AkSoundEngine.SetState("Environment", "Small");
            AkSoundEngine.SetState("Game_State", "In_Splash");
            AkSoundEngine.PostEvent("Environmental_Ambience_Play", gameObject);
            AkSoundEngine.PostEvent("Music_System_Play", gameObject);
            AkSoundEngine.RenderAudio();
        }
    }
 private static void SuspendEngine(bool isMuted)
 {
     if (isMuted)
     {
         AkSoundEngine.Suspend(true);
         isSuspended = true;
     }
     else
     {
         isSuspended = false;
         AkSoundEngine.WakeupFromSuspend();
         AkSoundEngine.RenderAudio(true);
     }
 }
Ejemplo n.º 16
0
 void OnApplicationFocus(bool focus)
 {
     if (ms_Instance != null)
     {
         if (focus)
         {
             AkSoundEngine.WakeupFromSuspend();
         }
         else
         {
             AkSoundEngine.Suspend();
         }
         AkSoundEngine.RenderAudio();
     }
 }
Ejemplo n.º 17
0
 //Keep out of UNITY_EDITOR because the sound needs to keep playing when switching windows (remote debugging in Wwise, for example).
 //On the WiiU, it seems Unity has a bug and never calls OnApplicationFocus(true).  This leaves us in "suspended mode".  So commented out for now.
 //On iOS, application interruptions are handled in the sound engine already.
 void OnApplicationPause(bool pauseStatus)
 {
     if (ms_Instance != null)
     {
         if (!pauseStatus)
         {
             AkSoundEngine.WakeupFromSuspend();
         }
         else
         {
             AkSoundEngine.Suspend();
         }
         AkSoundEngine.RenderAudio();
     }
 }
    public void LateUpdate()
    {
#if UNITY_EDITOR
        if (!IsSoundEngineLoaded)
        {
            return;
        }
#endif

        //Execute callbacks that occurred in last frame (not the current update)
        AkCallbackManager.PostCallbacks();
        AkBankManager.DoUnloadBanks();
        AkAudioListener.DefaultListeners.Refresh();
        AkSoundEngine.RenderAudio();
    }
Ejemplo n.º 19
0
    private static void ActivateAudio(bool activate)
    {
        if (ms_Instance != null)
        {
            if (activate)
            {
                AkSoundEngine.WakeupFromSuspend();
            }
            else
            {
                AkSoundEngine.Suspend();
            }

            AkSoundEngine.RenderAudio();
        }
    }
    private void ActivateAudio(bool activate)
    {
        if (AkSoundEngine.IsInitialized())
        {
            if (activate)
            {
                AkSoundEngine.WakeupFromSuspend();
            }
            else
            {
                AkSoundEngine.Suspend();
            }

            AkSoundEngine.RenderAudio();
        }
    }
Ejemplo n.º 21
0
    void OnApplicationFocus(bool focus)
    {
        if (ms_Instance != null)
        {
            if (focus)
            {
                uint id = AkSoundEngine.PostEvent("Resume_All_Global", null);
            }
            else
            {
                uint id = AkSoundEngine.PostEvent("Pause_All_Global", null);
            }

            AkSoundEngine.RenderAudio();
        }
    }
Ejemplo n.º 22
0
    // Enable/Disable the audio when pressing play/pause in the editor.
    private static void OnEditorPlaymodeStateChanged()
    {
        if (ms_Instance != null)
        {
            if (EditorApplication.isPaused)
            {
                AkSoundEngine.Suspend();
            }
            else
            {
                AkSoundEngine.WakeupFromSuspend();
            }

            AkSoundEngine.RenderAudio();
        }
    }
Ejemplo n.º 23
0
    void Terminate()
    {
        if (ms_Instance == null || ms_Instance != this || !AkSoundEngine.IsInitialized())
        {
            return;             //Don't term twice
        }
        // Stop everything, and make sure the callback buffer is empty. We try emptying as much as possible, and wait 10 ms before retrying.
        // Callbacks can take a long time to be posted after the call to RenderAudio().
        AkCallbackManager.SetMonitoringCallback(0, null);
        AkSoundEngine.StopAll();
        AkSoundEngine.ClearBanks();
        AkSoundEngine.RenderAudio();
        int retry = 5;

        do
        {
            int numCB = 0;
            do
            {
                numCB = AkCallbackManager.PostCallbacks();

                // This is a WSA-friendly sleep
                using (EventWaitHandle tmpEvent = new ManualResetEvent(false))
                {
                    tmpEvent.WaitOne(System.TimeSpan.FromMilliseconds(1));
                }
            }while(numCB > 0);

            // This is a WSA-friendly sleep
            using (EventWaitHandle tmpEvent = new ManualResetEvent(false))
            {
                tmpEvent.WaitOne(System.TimeSpan.FromMilliseconds(10));
            }
            retry--;
        }while (retry > 0);

        AkSoundEngine.Term();

        // Make sure we have no callbacks left after Term. Some might be posted during termination.
        AkCallbackManager.PostCallbacks();
        ms_Instance = null;

        AkCallbackManager.Term();
        AkBankManager.Reset();
    }
    public void LateUpdate()
    {
#if UNITY_EDITOR
        if (!AkSoundEngine.EditorIsSoundEngineLoaded)
        {
            return;
        }
#endif

        //Execute callbacks that occurred in last frame (not the current update)
        AkRoomManager.Update();
        AkRoomAwareManager.UpdateRoomAwareObjects();
        AkCallbackManager.PostCallbacks();
#if !(AK_WWISE_ADDRESSABLES && UNITY_ADDRESSABLES)
        AkBankManager.DoUnloadBanks();
#endif
        AkSoundEngine.RenderAudio();
    }
Ejemplo n.º 25
0
    //On the WiiU, it seems Unity has a bug and never calls OnApplicationFocus(true).  This leaves us in "suspended mode".  So commented out for now.
    void OnApplicationPause(bool pauseStatus)
    {
#if UNITY_IOS
        AkSoundEngine.ListenToAudioSessionInterruption(pauseStatus);
#endif
        if (ms_Instance != null)
        {
            if (!pauseStatus)
            {
                AkSoundEngine.WakeupFromSuspend();
            }
            else
            {
                AkSoundEngine.Suspend();
            }
            AkSoundEngine.RenderAudio();
        }
    }
Ejemplo n.º 26
0
 private void Terminate()
 {
     if (((ms_Instance != null) && (ms_Instance == this)) && AkSoundEngine.IsInitialized())
     {
         AkSoundEngine.StopAll();
         AkSoundEngine.RenderAudio();
         for (uint i = 0; i < 50; i++)
         {
             AkCallbackManager.PostCallbacks();
             using (EventWaitHandle handle = new ManualResetEvent(false))
             {
                 handle.WaitOne(TimeSpan.FromMilliseconds(1.0));
             }
         }
         AkSoundEngine.Term();
         ms_Instance = null;
         AkCallbackManager.Term();
     }
 }
Ejemplo n.º 27
0
 private void Terminate()
 {
     if (AkTerminator.ms_Instance == null || AkTerminator.ms_Instance != this || !AkSoundEngine.IsInitialized())
     {
         return;
     }
     AkSoundEngine.StopAll();
     AkSoundEngine.RenderAudio();
     for (uint num = 0u; num < 50u; num += 1u)
     {
         AkCallbackManager.PostCallbacks();
         using (EventWaitHandle eventWaitHandle = new ManualResetEvent(false))
         {
             eventWaitHandle.WaitOne(TimeSpan.FromMilliseconds(1.0));
         }
     }
     AkSoundEngine.Term();
     AkTerminator.ms_Instance = null;
     AkCallbackManager.Term();
 }
Ejemplo n.º 28
0
    void OnLevelWasLoaded()     // change music in menu/splash screens. Doesnt know when merging scenes
    {
        Scene = SceneManager.GetActiveScene().name;
        if (Scene == "Menu")
        {
            AkSoundEngine.StopAll();
            AkSoundEngine.PostEvent("Environmental_Ambience_Play", gameObject);
            AkSoundEngine.PostEvent("Music_System_Play", gameObject);
            AkSoundEngine.SetState("Game_State", "In_Main_Menu");
            AkSoundEngine.RenderAudio();
        }

        if (Scene == "LoadingScreen")
        {
            AkSoundEngine.StopAll();
            AkSoundEngine.SetState("Game_State", "In_Loading_Screen");
            AkSoundEngine.PostEvent("Environmental_Ambience_Play", gameObject);
            AkSoundEngine.PostEvent("Music_System_Play", gameObject);
            if (GameManager.events != null)
            {
                GameManager.events.OnLoadComplete += SetGameState;
            }
        }
    }
Ejemplo n.º 29
0
 public static void PlayEvent(string eventName)
 {
     AkSoundEngine.PostEvent(eventName, Instance.gameObject);
     AkSoundEngine.RenderAudio();
 }
Ejemplo n.º 30
0
 /// <summary>
 /// NOT SURE MUST ASK!!!!!
 /// </summary>
 public void AudioRendering()
 {
     AkSoundEngine.RenderAudio();
 }