【问题标题】:C# SoundPlayer not working properly when put after Console.ReadLine()C# SoundPlayer 在 Console.ReadLine() 之后无法正常工作
【发布时间】:2019-09-14 11:50:40
【问题描述】:

我有一个非常简单的控制台应用程序,我正在尝试使用 SoundPlayer 播放 wav 文件。

static void Main(string[] args)
{
    SoundPlayer sp = new SoundPlayer("path/to/sound.wav");

    while(true){
        Console.ReadLine();
        sp.PlaySync();
    }
}

它工作正常,除非PlaySync() 紧跟在Console.ReadLine() 之后。似乎我在输入之前等待的时间越长,声音的音量就越低。

我尝试过使用sp.Play()(异步版本),并尝试在它们之间放置Thread.Sleep() 延迟。没有区别。这可能是什么原因?

(这是我的第一篇文章,请原谅我的错误)

【问题讨论】:

  • "我尝试过使用 sp.Play()(异步版本),并尝试在它们之间放置一个 Thread.Sleep() 延迟。"当你尝试它们时发生了什么?
  • 啊,抱歉我没说清楚。更改无效。
  • 在描述问题时永远不要说“没用”,因为它太含糊了。它的行为和以前一样吗?它没有以其他新方式起作用吗?
  • 建议等声音文件加载完毕后再播放。
  • 感谢您的建议。没有明显的差异。所以我已经排除了阻塞主线程的问题。 wav 文件时长 2 秒

标签: c# .net console soundplayer


【解决方案1】:

答案就像问题一样简单。每次调用PlaySync() 时使用Stop()

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2020-08-01
    相关资源
    最近更新 更多