【问题标题】:C# SoundPlayer stops playing wav file before endC# SoundPlayer 在结束前停止播放 wav 文件
【发布时间】:2014-01-28 16:52:20
【问题描述】:

我创建了一个 .wav 文件,它包含一个完整的正弦波。您可以通过使用 Audacity 或类似工具打开它来进行验证。

https://mega.co.nz/#!DkR3gKia!dV9zDtdzmqHDDkEUeZviYf78SDkkxWVjUTy8kYEJnio

我想使用 C# .Net SoundPlayer 播放这个文件。喜欢这里:

static void Main(string[] args)
    {
        using (SoundPlayer sad = new SoundPlayer("D:\\Soundlocator\\test.wav"))
        {
            while (true)
            {
                sad.PlaySync();
                Thread.Sleep(100);
            }
        }
    }

我从示波器上看到的不到正弦波的一半。

谁能告诉我为什么? 也许我的 wav 文件头不正确?使用 vlc 或 Audacity 播放相同的文件可以让我得到预期的完整正弦波。

【问题讨论】:

  • 您是否尝试过在 windows 媒体播放器中播放该 wav 文件并查看是否损坏?
  • 这很奇怪。您可以尝试使用 PlayLooping 而不是 PlaySync 方法,或者摆脱 while(true) 循环吗?
  • 我尝试了其他播放器。它正在正常工作。只有 SoundPlayer 会出问题。 PlayLooping 完成了这项工作,但我想在播放 wav 文件之间添加一个暂停,因此这不起作用。任何想法这是怎么可能的?我找不到问题。

标签: c# .net wav soundplayer


【解决方案1】:

我仍然不知道问题出在哪里。我为克服这个问题所做的就是在文件末尾添加一些暂停(0)。现在看起来应该。与 PlayLooping 相结合,它并不完全符合它的要求。

虽然 SoundPlayer 在这个 WAV 上不能正常工作的问题仍然存在。

【讨论】:

    猜你喜欢
    • 2012-05-28
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多