예제 #1
0
    private void Start()
    {
        AudioSetting audioSetting = new AudioSetting();

        audioSetting.Load();
        GameDataManager.instance.gameData.optionData.audioSetting = audioSetting;
    }
예제 #2
0
    void Awake()
    {
        if (instance != null)
        {
            Destroy(gameObject);
        }
        else
        {
            instance = this;
            DontDestroyOnLoad(gameObject);

            library = GetComponent <SoundLibrary>();

            musicSources = new AudioSource[2];
            for (int i = 0; i < 2; i++)
            {
                GameObject newMusicSource = new GameObject("Music source " + (i + 1));
                musicSources[i] = newMusicSource.AddComponent <AudioSource>();
                newMusicSource.transform.parent = transform;
            }
            GameObject newSfx2Dsource = new GameObject("2D sfx source");
            sfx2DSource = newSfx2Dsource.AddComponent <AudioSource>();
            newSfx2Dsource.transform.parent = transform;

            audioListener = FindObjectOfType <AudioListener>().transform;

            AudioSetting audioSetting = new AudioSetting();
            audioSetting.Load();
            masterVolumePercent = audioSetting.masterVolumePercent;
            musicVolumePercent  = audioSetting.musicVolumePercent;
            sfxVolumePercent    = audioSetting.sfxVolumePercent;
        }
    }
예제 #3
0
        private void LoadConfig()
        {
            AudioSetting c = Config.Current.AudioSetting;

            cbAudioDevice.Items.Clear();

            if (Config.Current.OutputSetting.UseAudioFromCamera)
            {
                cboFuente.SelectedIndex = FUENTE_CAMARA_IP;
            }
            else
            {
                cboFuente.SelectedIndex = FUENTE_DISPOSITIVO;
            }

            WinHelper.LoadComboBoxFromDelimitedText(cbAudioDevice, this.VideoGrabber.AudioDevices);
            WinHelper.LoadComboBoxFromDelimitedText(cbAudioOutput, this.VideoGrabber.AudioRenderers);

            WinHelper.ComboBoxSelectByText(cbAudioDevice, c.AudioDevice);
            WinHelper.ComboBoxSelectByText(cbAudioFormat, c.AudioFormat);
            WinHelper.ComboBoxSelectByText(cbAudioLine, c.AudioDeviceLine);
            WinHelper.ComboBoxSelectByText(cbAudioOutput, c.AudioOutputDevice);

            chkAudioDeviceRendering.Checked = c.AudioDeviceRendering;
        }
예제 #4
0
    public void SetVolume(float volumePercent, AudioChannel channel)
    {
        AudioSetting audioSetting = GameDataManager.instance.gameData.optionData.audioSetting;

        if (channel == AudioChannel.Master)
        {
            masterVolumePercent = volumePercent;
            audioSetting.masterVolumePercent = masterVolumePercent;
        }
        else if (channel == AudioChannel.Music)
        {
            musicVolumePercent = volumePercent;
            audioSetting.musicVolumePercent = musicVolumePercent;
        }
        else if (channel == AudioChannel.Sfx)
        {
            sfxVolumePercent = volumePercent;
            audioSetting.sfxVolumePercent = sfxVolumePercent;
        }

        musicSources[0].volume = musicVolumePercent * masterVolumePercent;
        musicSources[1].volume = musicVolumePercent * masterVolumePercent;

        audioSetting.Save();
    }
예제 #5
0
 private void cmdTestErrorSound_Click(object sender, EventArgs e)
 {
     try
     {
         AudioSetting audioSetting = new AudioSetting()
         {
             Enabled          = true,
             AudioFilePath    = txtErrorAudioFilePath.Text,
             UseSystemSounds  = chkErrorUseSystemSounds.Checked,
             SoundRepeatCount = (int)errorRepeatCountNumericUpDown.Value,
             SoundVolumePerc  = errorVolumePercTrackBar.Value
         };
         if (chkErrorUseSystemSounds.Checked)
         {
             audioSetting.SystemSound = (SystemSounds)cboErrorSystemSound.SelectedIndex;
         }
         else
         {
             audioSetting.AudioFilePath = txtErrorAudioFilePath.Text;
         }
         backgroundWorker1.RunWorkerAsync(audioSetting);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #6
0
    public void SetVolume(float volumePercent, AudioChannel channel)
    {
        AudioSetting audioSetting = SaveDataManager.Instance.SaveData.OptionData.AudioSetting;

        if (channel == AudioChannel.Master)
        {
            MasterVolumePercent = volumePercent;
            audioSetting.MasterVolumePercent = MasterVolumePercent;
        }
        else if (channel == AudioChannel.Music)
        {
            MusicVolumePercent = volumePercent;
            audioSetting.MusicVolumePercent = MusicVolumePercent;
        }
        else if (channel == AudioChannel.Sfx)
        {
            SfxVolumePercent = volumePercent;
            audioSetting.SfxVolumePercent = SfxVolumePercent;
        }

        musicSources[0].volume = MusicVolumePercent * MasterVolumePercent;
        musicSources[1].volume = MusicVolumePercent * MasterVolumePercent;

        audioSetting.Save();
    }
예제 #7
0
    public void SetVolume(float volumePercent, AudioChannel channel)
    {
        switch (channel)
        {
        case AudioChannel.Master:
            masterVolumePercent = volumePercent;
            break;

        case AudioChannel.Sfx:
            sfxVolumePercent = volumePercent;
            break;

        case AudioChannel.Music:
            musicVolumePercent = volumePercent;
            break;
        }

        musicSources[0].volume = musicVolumePercent * masterVolumePercent;
        musicSources[1].volume = musicVolumePercent * masterVolumePercent;

        AudioSetting audioSetting = GameDataManager.instance.gameData.optionData.audioSetting;

        audioSetting.masterVolumePercent = masterVolumePercent;
        audioSetting.musicVolumePercent  = musicVolumePercent;
        audioSetting.sfxVolumePercent    = sfxVolumePercent;

        audioSetting.Save();
    }
예제 #8
0
    private void Start()
    {
        AudioSetting audioSetting = SaveDataManager.Instance.SaveData.OptionData.AudioSetting;

        MasterVolumePercent = audioSetting.MasterVolumePercent;
        MusicVolumePercent  = audioSetting.MusicVolumePercent;
        SfxVolumePercent    = audioSetting.SfxVolumePercent;
    }
예제 #9
0
    public void SwitchAudio(AudioSetting audioSetting, AudioType type)
    {
        AudioSource audioSource = AudioSource(type);

        audioSource.clip   = audioSetting.clip;
        audioSource.volume = audioSetting.volume;
        audioSource.Play();
    }
예제 #10
0
    private void Start()
    {
        AudioSetting audioSetting = SaveDataManager.Instance.SaveData.OptionData.AudioSetting;

        volumeSliders[0].value = audioSetting.MasterVolumePercent;
        volumeSliders[1].value = audioSetting.MusicVolumePercent;
        volumeSliders[2].value = audioSetting.SfxVolumePercent;
    }
예제 #11
0
    void Start()
    {
        AudioSetting audioSetting = GameDataManager.instance.gameData.optionData.audioSetting;

        volumeSliders[0].value = audioSetting.masterVolumePercent;
        volumeSliders[1].value = audioSetting.musicVolumePercent;
        volumeSliders[2].value = audioSetting.sfxVolumePercent;
    }
예제 #12
0
    private void Start()
    {
        AudioSetting audioSetting = GameDataManager.instance.gameData.optionData.audioSetting;

        masterVolumePercent = audioSetting.masterVolumePercent;
        musicVolumePercent  = audioSetting.musicVolumePercent;
        sfxVolumePercent    = audioSetting.sfxVolumePercent;
    }
예제 #13
0
    public void Save()
    {
        AudioSetting audioSetting = GameDataManager.instance.gameData.optionData.audioSetting;
        string       saveString   = JsonUtility.ToJson(audioSetting);

        PlayerPrefs.SetString("audioSetting", saveString);

        /*StreamWriter file = new StreamWriter(System.IO.Path.Combine(Application.persistentDataPath, "audioSetting"));
         * file.Write(saveString);
         * file.Close();*/
    }
예제 #14
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            AudioSetting audioSetting = (AudioSetting)e.Argument;

            if (audioSetting.UseSystemSounds)
            {
                AudioNotifier.PlaySystemSound(audioSetting.SystemSound, audioSetting.SoundVolumePerc, audioSetting.SoundRepeatCount);
            }
            else
            {
                AudioNotifier.PlayCustomSound(audioSetting.AudioFilePath, audioSetting.SoundVolumePerc, audioSetting.SoundRepeatCount);
            }
        }
예제 #15
0
    private void Awake()
    {
        InitBgm();

        foreach (AudioType type in Enum.GetValues(typeof(AudioType)))
        {
            if (type != AudioType.All)
            {
                AudioSetting setting = new AudioSetting();
                _audioSettingDic.Add(type, setting);
            }
        }
    }
예제 #16
0
        public override void SaveConfig(Config config)
        {
            AudioSetting c = config.AudioSetting;

            if (cboFuente.SelectedIndex == FUENTE_CAMARA_IP)
            {
                Config.Current.OutputSetting.UseAudioFromCamera = true;
            }
            else
            {
                Config.Current.OutputSetting.UseAudioFromCamera = false;
            }

            if (!Config.Current.OutputSetting.UseAudioFromCamera)
            {
                if (cbAudioDevice.SelectedItem != null)
                {
                    c.AudioDevice = cbAudioDevice.SelectedItem.ToString();

                    if (cbAudioFormat.SelectedItem != null)
                    {
                        c.AudioFormat = cbAudioFormat.SelectedItem.ToString();
                    }
                }
                else
                {
                    c.AudioDevice = "";
                }


                if (cbAudioLine.SelectedItem != null)
                {
                    c.AudioDeviceLine = cbAudioLine.SelectedItem.ToString();
                }
                else
                {
                    c.AudioDeviceLine = "";
                }
            }

            if (cbAudioOutput.SelectedItem != null)
            {
                c.AudioOutputDevice = cbAudioOutput.SelectedItem.ToString();
            }
            else
            {
                c.AudioOutputDevice = "";
            }

            c.AudioDeviceRendering = chkAudioDeviceRendering.Checked;
        }
        public void Play(int track, AudioSetting setting, PlayMode playMode, MixMode mixmode)
        {
            TryCreateTrack(track);

            Mixer <AudioTrack.AudioPlayer> mixer = AudioMixerFactory.CreateNullMixer();

            if (mixmode == MixMode.VolumeMix)
            {
                mixer = AudioMixerFactory.CreateVolumeMixer();
            }

            this.tracks[track].SetTrackMixer(mixer);
            this.tracks[track].Play(setting, playMode, true);
        }
예제 #18
0
    private void Start()
    {
        // Turn off for now; this is more of a workaround since audio clips are already set up in most scenes
        audioSource.enabled = false;

        // Check
        AudioClip currentPlayingClip = audioManager.AudioSource(audioType).clip;

        if (audioSource.clip != currentPlayingClip || currentPlayingClip == null)
        {
            AudioSetting audioSetting = new AudioSetting(audioSource.clip, audioSource.volume);
            audioManager.SwitchAudio(audioSetting, audioType);
        }
    }
예제 #19
0
    public void Load()
    {
        /* file = new StreamReader(System.IO.Path.Combine(Application.persistentDataPath, "audioSetting"));
         * string loadJson = file.ReadToEnd();
         * file.Close();*/

        string loadJson = PlayerPrefs.GetString("audioSetting", "");

        AudioSetting loadData = new AudioSetting();

        loadData = JsonUtility.FromJson <AudioSetting>(loadJson);

        masterVolumePercent = loadData.masterVolumePercent;
        musicVolumePercent  = loadData.musicVolumePercent;
        sfxVolumePercent    = loadData.sfxVolumePercent;
    }
 public void Play(int track, AudioSetting setting, PlayMode playMode)
 {
     TryCreateTrack(track);
     this.tracks[track].Play(setting, playMode, false);
 }
예제 #21
0
    public float GetPitch(AudioType type = AudioType.All)
    {
        AudioSetting setting = _audioSettingDic[type];

        return(setting.Pitch);
    }
    public override void OnObjectReuse(object parameters)
    {
        AudioSetting settingsForEvent = (AudioSetting)parameters;

        PlaySoundWithSettingsForEvent(settingsForEvent);
    }
예제 #23
0
 public OptionData()
 {
     audioSetting = new AudioSetting();
 }
예제 #24
0
    /// <summary>
    /// 根据类型获取声音大小
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    public float GetVolumeByType(AudioType type)
    {
        AudioSetting setting = _audioSettingDic[type];

        return(setting.Volume);
    }
 private void PlaySoundWithSettingsForEvent(AudioSetting settingsForEvent)
 {
     _source.pitch  = _originalPitch + Random.Range(-settingsForEvent.pitchVariety, settingsForEvent.pitchVariety);
     _source.volume = settingsForEvent.volume;
     _source.PlayOneShot(settingsForEvent.getClip());
 }
예제 #26
0
 public SystemProxy()
 {
     AudioSetting = new AudioSetting(PlayerPrefs.GetFloat("BGMVolume", DEFAULT_BGM_VOLUME), PlayerPrefs.GetFloat("SoundEffectVolume", DEFAULT_SOUND_EFFECT_VOLUME));
 }