正如here所述,可以使用OffsetSampleProvider
来播放音频文件的特定部分。像这样:
AudioFileReader AudioReader = new AudioFileReader("x.wav");
OffsetSampleProvider OffsetProvider = New OffsetSampleProvider(AudioReader);
OffsetProvider.SkipOver = TimeSpan.FromSeconds(5);
OffsetProvider.Take = TimeSpan.FromSeconds(8);
myWaveOut.Init(OffsetProvider);
myWaveOut.Play();
上面的示例将播放音频8秒,从第5页开始。但是,如果我想再次播放它,它将无法播放,除非我设置Position
的{{1}}属性}到0,并从中重新创建AudioFileReader
的新实例。所以我想知道我是否遗漏了某些内容,或者这是OffsetSampleProvider
应该使用的方式(如果有的话,我是否必须释放与之相关的任何资源)。
答案 0 :(得分:1)
您可以复制OffsetSampleProvider
的代码并为其添加Reset
方法。我还出于性能原因而避免使用SkipOver
,并且在您玩游戏之前直接将CurrentTime
的{{1}}设置为5秒。