//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    // PUBLIC FUNCTION
    //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    // @Brief  : Play bgm
    // @Param  : pPath          => Audio asset path
    //         : bFromResources => From resources file
    // @Return : Audio source
    public KrAudioSource PlayBgm(string pPath, bool bFromResources)
    {
        KrAudioSource pAudioSource = PlayAudio(pPath, true, bFromResources);

        if (pAudioSource == null)
        {
            return(null);
        }

        if (m_pBgmAudioSource != null)
        {
            m_pBgmAudioSource.Destroy();
        }
        m_pBgmAudioSource = pAudioSource;
        return(m_pBgmAudioSource);
    }
    // @Brief  : Play se
    // @Param  : pPath          => Audio asset path
    //         : bIsMultiVoice  => Is multi voice
    //         : bFromResources => From resources file
    // @Return : Audio source
    public KrAudioSource PlayVoice(string pPath, bool bIsMultiVoice, bool bFromResources)
    {
        KrAudioSource pAudioSource = PlayAudio(pPath, false, bFromResources);

        if (pAudioSource == null)
        {
            return(null);
        }

        if (bIsMultiVoice)
        {
            m_pVoiceAudioSources.Add(pAudioSource);
        }
        else
        {
            if (m_pVoiceAudioSource != null)
            {
                m_pVoiceAudioSource.Destroy();
            }
            m_pVoiceAudioSource = pAudioSource;
        }
        return(pAudioSource);
    }