Пример #1
0
    /// <summary>
    /// Changes the Audio Volume in the Audio Mixer.
    /// </summary>
    /// <param name="audioVolType">The type of AudioSource that the volume wanted to changes</param>
    /// <param name="volume">Between 0 - 1</param>
    public void SetVolume(AudioVolumeType audioVolType, float volume)
    {
        string audioType = null;
        float  maxVolume = 80f;

        switch (audioVolType)
        {
        case AudioVolumeType.Master:
            audioType = MASTER_VOLUME;
            maxVolume = MAX_MASTER_VOLUME;
            break;

        case AudioVolumeType.BGM:
            audioType = BGM_VOLUME;
            maxVolume = MAX_BGM_VOLUME;
            break;

        case AudioVolumeType.SFX:
            audioType = SFX_VOLUME;
            maxVolume = MAX_SFX_VOLUME;
            break;
        }

        float volAdjusted = Mathf.Clamp01(volume);

        volAdjusted = ((volAdjusted * maxVolume) - 80); //karena min di audio mixer -80 audionya mati, 0 audionya normal, dan 20 audionya boosted (itungan desibles)

        if (audioType != null && AudioMixer != null)
        {
            AudioMixer.SetFloat(audioType, volAdjusted);
        }
    }
Пример #2
0
 /// <summary>
 /// Mutes or Unmutes the sound, depending on bool Is__On. Don't have to call this, just set the Is__On variable.
 /// </summary>
 /// <param name="audioType">The type of AudioSource that the volume wanted to changes</param>
 public void MuteUnMuteSound(AudioVolumeType audioType)
 {
     if (audioType == AudioVolumeType.SFX)
     {
         SetVolume(AudioVolumeType.SFX, IsSFXOn == true ? 1 : 0);
     }
     else if (audioType == AudioVolumeType.BGM)
     {
         SetVolume(AudioVolumeType.BGM, IsBGMOn == true ? 1 : 0);
     }
     else if (audioType == AudioVolumeType.Master)
     {
         SetVolume(AudioVolumeType.Master, IsMasterOn == true ? 1 : 0);
     }
 }
Пример #3
0
        /// <summary>
        /// Gets the max volume level of the specified <see cref="AudioVolumeType"/>.
        /// </summary>
        /// <param name="type">The <see cref="AudioVolumeType"/> to query.</param>
        /// <value>The maximum volume level.</value>
        /// <exception cref="ArgumentException"><paramref name="type"/> is invalid.</exception>
        /// <exception cref="ArgumentOutOfRangeException"><paramref name="type"/> is <see cref="AudioVolumeType.None"/>.</exception>
        /// <since_tizen> 3 </since_tizen>
        public int this[AudioVolumeType type]
        {
            get
            {
                ValidationUtil.ValidateEnum(typeof(AudioVolumeType), type, nameof(type));

                if (type == AudioVolumeType.None)
                {
                    throw new ArgumentOutOfRangeException(nameof(type),
                                                          "Cannot get max volume level for AudioVolumeType.None");
                }

                Interop.AudioVolume.GetMaxVolume(type, out var maxVolume).
                Validate("Failed to get the max volume level");

                return(maxVolume);
            }
        }
Пример #4
0
        /// <summary>
        /// Gets or sets the volume level of the specified <see cref="AudioVolumeType"/>.
        /// </summary>
        /// <param name="type">The <see cref="AudioVolumeType"/> to control.</param>
        /// <value>The current volume level.</value>
        /// <remarks>To set volumes, the specified privilege is required.</remarks>
        /// <privilege>http://tizen.org/privilege/volume.set</privilege>
        /// <exception cref="ArgumentException"><paramref name="type"/> is invalid.</exception>
        /// <exception cref="ArgumentOutOfRangeException">
        ///     <paramref name="type"/> is <see cref="AudioVolumeType.None"/>.<br/>
        ///     -or-<br/>
        ///     <paramref name="value"/> is less than zero.<br/>
        ///     -or-<br/>
        ///     <paramref name="value"/> is greater than <see cref="MaxVolumeLevel.this[AudioVolumeType]"/>.
        /// </exception>
        /// <exception cref="UnauthorizedAccessException">The caller does not have required privilege to set volume.</exception>
        /// <since_tizen> 3 </since_tizen>
        public int this[AudioVolumeType type]
        {
            get
            {
                ValidationUtil.ValidateEnum(typeof(AudioVolumeType), type, nameof(type));

                if (type == AudioVolumeType.None)
                {
                    throw new ArgumentOutOfRangeException(nameof(type),
                                                          "Cannot get volume level for AudioVolumeType.None");
                }

                Interop.AudioVolume.GetVolume(type, out var volume).ThrowIfError("Failed to get the volume level");

                return(volume);
            }
            set
            {
                ValidationUtil.ValidateEnum(typeof(AudioVolumeType), type, nameof(value));

                if (type == AudioVolumeType.None)
                {
                    throw new ArgumentOutOfRangeException(nameof(type),
                                                          "Cannot set volume level for AudioVolumeType.None");
                }

                var ret = Interop.AudioVolume.SetVolume(type, value);

                if (ret == AudioManagerError.InvalidParameter)
                {
                    throw new ArgumentOutOfRangeException(nameof(value), value,
                                                          $"valid volume level range is 0 <= x <= {nameof(MaxVolumeLevel)}[{nameof(AudioVolumeType)}]");
                }

                ret.ThrowIfError("Failed to set the volume level");
            }
        }
Пример #5
0
 internal static extern AudioManagerError GetSoundType(AudioStreamPolicyHandle streamInfo,
                                                       out AudioVolumeType soundType);
Пример #6
0
 internal static extern AudioManagerError GetCurrentSoundType(out AudioVolumeType type);
Пример #7
0
 internal static extern AudioManagerError GetVolume(AudioVolumeType type, out int volume);
Пример #8
0
 internal static extern AudioManagerError GetMaxVolume(AudioVolumeType type, out int max);
Пример #9
0
 internal VolumeChangedEventArgs(AudioVolumeType type, uint level)
 {
     Type  = type;
     Level = (int)level;
 }