Проигрывание звука с условием в цикле - C#

Узнай цену своей работы

Формулировка задачи:

Добрый День Мне необходимо, чтобы звук проигрывался с условием в цикле, но не начинал проигрываться заново, если значение в памяти удовлетворяет текущему условию. Для этого добавил Булевую, но с ней он вообще отказывается входить в условие, а если убрать, то он пытается постоянно запустить плеер. Подскажите пожалуйста.
void method()
        {
            byte[] buffer = new byte[sizeof(float)];
            bool nn = true;
         
            while (true)
            {
 
                buffer = ME.ReadMemory((IntPtr)0x05369380, sizeof(float));
                float spd = BitConverter.ToSingle(buffer, 0);

                if ((spd >= 0) && (spd <= 4) && nn) //0
 
                 {
                    nn = false;
                    SoundPlayer sound = new SoundPlayer(WindowsFormsApplication13.Properties.Resources._1); sound.Stop();
                   
                }

                else if ((spd <= 12) && (spd >= 5) && nn) //1
                {
                    nn = false;

                    SoundPlayer sound = new SoundPlayer(WindowsFormsApplication13.Properties.Resources._1);
                    sound.PlayLooping();

                }
 
                else if ((spd <= 23) && (spd >= 13) && nn) //2
                {
                    nn = false;

                    SoundPlayer sound = new SoundPlayer(WindowsFormsApplication13.Properties.Resources._2); sound.PlayLooping();
 
                }
}

Решение задачи: «Проигрывание звука с условием в цикле»

textual
Листинг программы
void method()
{
    byte[] buffer = new byte[sizeof(float)];
    float? prevSpd = null;
 
    while (true)
    {
        buffer = ME.ReadMemory((IntPtr)0x05369380, sizeof(float));
        float spd = BitConverter.ToSingle(buffer, 0);
        if (prevSpd.HasValue && prevSpd.Value == spd) continue;
 
        // Условия
        // ...
 
        prevSpd = spd;
    }
}

Оцени полезность:

6   голосов , оценка 4.833 из 5
Похожие ответы