我在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)
看起来它更接近真相.我的决心是否真实?如果不是我该怎么办?
您可以Position直接在a上设置WaveStream,必须将其转换为字节偏移量 - 所以是的,将每秒的平均字节数乘以秒数将使您到达正确的位置(至少使用常规的PCM WAV文件).WaveStream还有一个名为的辅助属性CurrentTime允许你使用a TimeSpan,它会为你做同样的计算.
如果有人仍然有这个问题,无法搞清楚.那么这是一个例子:
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)
| 归档时间: |
|
| 查看次数: |
6313 次 |
| 最近记录: |