我有一个 WMA 文件,其中包含许多不同的音频片段。 有什么方法可以播放声音流的一部分吗?
类似于:
public static void Play(Stream soundStream, long start, long end);
最佳答案
您可以使用 NAudio 来做到这一点, 它是 .Net 的音频库。
使用示例 here我能够抛出一个快速测试应用程序来尝试它。使用 WaveSteam.Skip(int seconds) 方法,您可以从文件中的特定位置开始。我一直无法弄清楚如何获得最终位置。下面是在 30 秒标记处启动 wma 文件的修改示例:
IWavePlayer waveOutDevice = new WaveOut();
WaveStream mainOutputStream;
WaveChannel32 volumeStream;
WaveStream wmaReader = new WMAFileReader(@"F:\My Music\The Prodigy\Music for the Jilted Generation\01 Intro.wma");
volumeStream = new WaveChannel32(wmaReader);
mainOutputStream = volumeStream;
mainOutputStream.Skip(30); //start 30 seconds into the file
waveOutDevice.Init(mainOutputStream);
waveOutDevice.Play();
不过,上面的示例省略了停止播放和处理流的清理代码。希望能有所帮助。
关于c# - 在 C# 中播放部分声音 (WMA) 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13371717/