C# でサウンド ファイルの特定の部分を再生したいと考えています。たとえば、オーディオ ファイルは 10 秒です。5秒から8秒以内の音を鳴らしたい。
そのため、開始位置と終了位置を持つ特定の部分のみがサウンド ファイルとして再生されます。
C# でのサポートは見つかりませんでした。他の API は役に立ちますか?
C# でサウンド ファイルの特定の部分を再生したいと考えています。たとえば、オーディオ ファイルは 10 秒です。5秒から8秒以内の音を鳴らしたい。
そのため、開始位置と終了位置を持つ特定の部分のみがサウンド ファイルとして再生されます。
C# でのサポートは見つかりませんでした。他の API は役に立ちますか?
.NET 3.0 以降を使用している場合はMediaPlayer
、単純なクラスで作業することをお勧めします。MSDNのドキュメントを参照してください。
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();