Как изменить звуковой файл для моего приложения Windows Form, используя поле со списком? - PullRequest
0 голосов
/ 25 ноября 2011

Я разрабатываю приложение Windows Form. В настоящее время я работаю над аспектом Настройки для моего приложения Windows Form. В форме настроек я смогу включить тональный сигнал оповещения для своего приложения. Звуковой код по умолчанию выглядит следующим образом

public String defaultAlertTone = Path.GetDirectoryName(Application.ExecutablePath) + "\\Sounds\\applause-2.wav"; 

Что касается настроек, я включил 2 тона по умолчанию, которые пользователь может выбрать через поле со списком. Код для поля со списком выглядит следующим образом:

private void comboBoxSound_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBoxSound.SelectedIndex == 0)
        {
            ReportStatus("Alert tone changed to 'Beep(1)'!");
            backgroundFormObject.getSetting().defaultAlertTone = Path.GetDirectoryName(Application.ExecutablePath) + "\\Sounds\\beep-1.wav";
        }
        else
        {

            ReportStatus("Alert tone changed to 'Beep(2)'!");
            backgroundFormObject.getSetting().defaultAlertTone = Path.GetDirectoryName(Application.ExecutablePath) + "\\Sounds\\beep-2.wav";
        }

        string appPath = Path.GetDirectoryName(Application.ExecutablePath);

        Stream stream = File.Open(appPath + "\\setting.sd", FileMode.Create);
        BinaryFormatter bFormatter = new BinaryFormatter();


        bFormatter.Serialize(stream, backgroundFormObject.getSetting());
        stream.Close();
    }

Почему при выборе другого тембра и воспроизведении звука эффект остается таким же, как и исходный звуковой сигнал аплодисментов. Нужно ли ждать окончания загрузки файла, прежде чем я начну играть?

1 Ответ

0 голосов
/ 26 ноября 2011

удалось решить сам, используя следующий код

private void comboBoxSound_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBoxSound.SelectedIndex == 0)
        {
            ReportStatus("Alert tone changed to 'Beep(1)'!");
            settingObject.defaultAlertTone = Path.GetDirectoryName(Application.ExecutablePath) + "\\Sounds\\beep-1.wav";
        }
        else
        {

            ReportStatus("Alert tone changed to 'Beep(2)'!");
            settingObject.defaultAlertTone = Path.GetDirectoryName(Application.ExecutablePath) + "\\Sounds\\beep-2.wav";
        }

        string appPath = Path.GetDirectoryName(Application.ExecutablePath);

        Stream stream = File.Open(appPath + "\\setting.sd", FileMode.Create);
        BinaryFormatter bFormatter = new BinaryFormatter();


        bFormatter.Serialize(stream, settingObject);
        stream.Close();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...