我想在C#中播放声音文件的任何特定部分。例如: 音频文件为10秒。我希望播放仅在5秒到8秒之内的声音。
所以,只有具有开始和结束位置的特定部分才是声音文件。
我没有在C#中找到任何支持。任何其他API可以帮助吗?
答案 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();