如何在C#中播放声音文件的一部分?

时间:2012-10-25 10:49:53

标签: c# visual-studio-2008 audio

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

所以,只有具有开始和结束位置的特定部分才是声音文件。

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

2 个答案:

答案 0 :(得分:1)

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

上的文档

答案 1 :(得分:0)

以下是NAudio(获取此pre-release build 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();