Как воспроизвести звук в Консольном приложении в цикле For, чтобы звучало, как будто кто-то печатает? - PullRequest
0 голосов
/ 29 ноября 2018

Моя самая большая проблема заключается в том, что он воспроизводится только один раз в конце цикла.Мне было интересно, есть ли цикл Pause для воспроизведения звука, а затем продолжить цикл, но я не могу найти ничего подобного.

class Feladat
{
    System.Media.SoundPlayer player = new System.Media.SoundPlayer();
    int seconds = 3;

    public void Udv()
    {
        player.SoundLocation = "./sounds/type2.wav";
        Console.WriteLine();
        string szoveg = "Üdvözöllek !";

        for (int i = 0; i < szoveg.Length; i++, System.Threading.Thread.Sleep(TimeSpan.FromSeconds(0.050)))
        {               
            string current = Convert.ToString(szoveg[i]);
            System.Console.Write(current);
            player.Play();
        }            
    }
}

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Из документов :

Метод Play воспроизводит звук с использованием нового потока.Если вы вызываете Play до загрузки WAV-файла в память, WAV-файл будет загружен до начала воспроизведения.Вы можете использовать метод LoadAsync или Load, чтобы заранее загрузить WAV-файл в память.После успешной загрузки WAV-файла из потока или URL-адреса в будущем при вызове методов воспроизведения для SoundPlayer не нужно будет перезагружать WAV-файл до тех пор, пока путь к звуку не изменится.

Кажется, загрузкане сделано вовремя, ваш цикл повторяется снова.

0 голосов
/ 29 ноября 2018

Попробуйте переместить 'System.Threading.Thread.Sleep (TimeSpan.FromSeconds (0.050)) "из цикла в * после 1001 * и скажите, поможет ли это.

...