【问题标题】:How to play a portion of a sound file in C#?如何在 C# 中播放声音文件的一部分?
【发布时间】:2012-10-15 12:58:09
【问题描述】:

我想在 C# 中播放声音文件的任何特定部分。例如: 一个音频文件是 10 秒。我想播放仅在 5 秒到 8 秒内的声音。

因此,只有具有开始和结束位置的特定部分是声音文件才会播放。

我没有在 C# 中找到任何支持。其他 API 可以提供帮助吗?

【问题讨论】:

  • 我会推荐你​​NAudio
  • 您是否尝试过寻找 c# 音频库?我确定那里有负载

标签: c# visual-studio-2008 audio


【解决方案1】:

如果您使用.NET 3.0 或更高版本,我建议您使用MediaPlayer,这是一个简单的类。请参考MSDN上的文档

【讨论】:

    【解决方案2】:

    以下是使用NAudio (available on NuGet) 的方法:

    var file = new AudioFileReader("test.mp3");
    // skip the first 15 seconds
    file.CurrentTime = TimeSpan.FromSeconds(15);
    var trimmed = new OffsetSampleProvider(file);
    // only play 10 seconds
    var takeDuration = TimeSpan.FromSeconds(10);
    trimmed.TakeSamples = (int)(trimmed.WaveFormat.SampleRate * takeDuration.TotalSeconds) * trimmed.WaveFormat.Channels;
    var player = new WaveOut();
    player.Init(new SampleToWaveProvider16(trimmed));
    player.Play();
    

    【讨论】:

    • 这行得通,但我建议放置 github 链接而不是实际链接,因为浏览器不允许您在没有有关病毒等警告的情况下打开该链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2010-09-12
    • 1970-01-01
    • 2014-08-06
    • 2015-08-01
    • 1970-01-01
    相关资源
    最近更新 更多