NAudio - 从指定位置寻找和导航

Ale*_*dre 6 c# audio naudio

我在C#应用程序中使用NAudio库.我正试图寻找一个音频(*.mp3文件)到我想要的位置.但是我没弄明白该怎么做.

//Play the file starting from 16th second
waveStream.Seek(16, SeekOrigin.Begin);
Run Code Online (Sandbox Code Playgroud)

并且...它几乎从一开始就开始播放,但不是从第16秒开始.我还找到了一个我认为正确的解决方案:

waveStream.Seek(waveStream.WaveFormat.AverageBytesPerSecond * 16, SeekOrigin.Begin);
Run Code Online (Sandbox Code Playgroud)

看起来它更接近真相.我的决心是否真实?如果不是我该怎么办?

Mar*_*ath 7

您可以Position直接在a上设置WaveStream,必须将其转换为字节偏移量 - 所以是的,将每秒的平均字节数乘以秒数将使您到达正确的位置(至少使用常规的PCM WAV文件).WaveStream还有一个名为的辅助属性CurrentTime允许你使用a TimeSpan,它会为你做同样的计算.


Tan*_*nel 7

如果有人仍然有这个问题,无法搞清楚.那么这是一个例子:

myWaveStream.CurrentTime = myWaveStream.CurrentTime.Add(new TimeSpan(0, hours, minutes, seconds, milliseconds));

myWaveStream.CurrentTime = myWaveStream.CurrentTime.Subtract(new TimeSpan(0, hours, minutes, seconds, milliseconds));
Run Code Online (Sandbox Code Playgroud)