Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在For循环中在控制台应用程序中播放声音,使其听起来像有人在打字?_C#_Audio_Console Application - Fatal编程技术网

C# 如何在For循环中在控制台应用程序中播放声音,使其听起来像有人在打字?

C# 如何在For循环中在控制台应用程序中播放声音,使其听起来像有人在打字?,c#,audio,console-application,C#,Audio,Console Application,我最大的问题是在循环结束时只播放一次。我想知道是否有一个暂停循环播放一个声音,然后继续循环,但我找不到这样的东西 class Feladat { System.Media.SoundPlayer player = new System.Media.SoundPlayer(); int seconds = 3; public void Udv() { player.SoundLocation = "./sounds/type2.wav";

我最大的问题是在循环结束时只播放一次。我想知道是否有一个暂停循环播放一个声音,然后继续循环,但我找不到这样的东西

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();
        }            
    }
}

尝试将“System.Threading.Thread.SleepTimeSpan.fromsseconds0.050”从循环移动到after player.Play;并告诉我们是否有帮助。

来自:

播放方法使用新线程播放声音。如果在.wav文件加载到内存之前调用Play,则将在播放开始之前加载.wav文件。您可以使用LoadAsync或Load方法提前将.wav文件加载到内存中。从流或URL成功加载.wav文件后,以后对SoundPlayer播放方法的调用将不需要重新加载.wav文件,直到声音路径发生更改


似乎加载没有在循环再次迭代时完成

我不得不切断.wav文件的开头,因为它对于播放间隔来说太长了。问题解决了

欢迎来到堆栈溢出!请不要发布代码截图和/或错误消息。提示:从代码中删除所有不必要的内容。我还没有把你的代码带到我的编辑器中,但是一次视觉检查会让我损失几秒钟,dt,Kozep;或Console.writeLine;用于在循环中播放声音。此外,在编写字符之前,不要麻烦将字符转换为字符串。Console.Write可以接受一个字符。您好,刚刚用sample.wav在我的机器上测试了您的代码,时间长了2秒,效果很好。也许是时候缩短播放wav的时间了?@BrootsWaymb在我的测试中,我刚刚使用了控制台。Writeszoveg[I]没问题,这有什么用?它将同时执行。在整个循环结束时只播放一次。而不是szoveg.Length次。我必须切断.wav文件的开头,因为它对于播放间隔来说太长了。问题解决了!好吧,在这种情况下,这不是答案;