1

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

因此,只有具有开始和结束位置的特定部分是声音文件,不会播放其他任何内容。

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

4

2 回答 2

1

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

于 2012-10-25T11:04:19.890 回答
0

以下是使用NAudio的方法(在 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();
于 2012-10-26T06:21:17.607 回答