C# 如何在NAudio MP3流媒体部分使用曲目栏
我正在使用C#中的NAudio库,我需要一个轨迹栏来控制音乐。在NAudio Mp3Stream示例项目中,我们有标准控件,如播放、停止、暂停、音量,但没有轨迹栏 我可以在Mp3Stream中使用轨迹栏吗?因为当我在do命令上设置断点时,readFullyStream变量中的CanSeek属性为false 如何在流媒体中使用曲目栏C# 如何在NAudio MP3流媒体部分使用曲目栏,c#,naudio,C#,Naudio,我正在使用C#中的NAudio库,我需要一个轨迹栏来控制音乐。在NAudio Mp3Stream示例项目中,我们有标准控件,如播放、停止、暂停、音量,但没有轨迹栏 我可以在Mp3Stream中使用轨迹栏吗?因为当我在do命令上设置断点时,readFullyStream变量中的CanSeek属性为false 如何在流媒体中使用曲目栏 using (var responseStream = resp.GetResponseStream()) { var readFullyStream = new R
using (var responseStream = resp.GetResponseStream())
{
var readFullyStream = new ReadFullyStream(responseStream);
do
{
if (IsBufferNearlyFull)
{
Debug.WriteLine("Buffer getting full, taking a break");
Thread.Sleep(500);
}
else
{
Mp3Frame frame;
try
{
frame = Mp3Frame.LoadFromStream(readFullyStream);
}
catch (EndOfStreamException)
{
fullyDownloaded = true;
// reached the end of the MP3 file / stream
break;
}
catch (WebException)
{
// probably we have aborted download from the GUI thread
break;
}
if (decompressor == null)
{
// don't think these details matter too much - just help ACM select the right codec
// however, the buffered provider doesn't know what sample rate it is working at
// until we have a frame
decompressor = CreateFrameDecompressor(frame);
bufferedWaveProvider = new BufferedWaveProvider(decompressor.OutputFormat);
bufferedWaveProvider.BufferDuration = TimeSpan.FromSeconds(20); // allow us to get well ahead of ourselves
//this.bufferedWaveProvider.BufferedDuration = 250;
}
int decompressed = decompressor.DecompressFrame(frame, buffer, 0);
//Debug.WriteLine(String.Format("Decompressed a frame {0}", decompressed));
bufferedWaveProvider.AddSamples(buffer, 0, decompressed);
}
} while (playbackState != StreamingPlaybackState.Stopped);
Debug.WriteLine("Exiting");
// was doing this in a finally block, but for some reason
// we are hanging on response stream .Dispose so never get there
decompressor.Dispose();
}
NAudio流媒体演示只需在MP3帧到达时解压缩并播放。没有代码存储以前接收到的音频。因此,如果您想要倒带的能力,您需要实现它
一个选项,您可以考虑使用<代码> MediaFoundationReader <代码>,将流URL作为路径传递。这可以在下载时播放音频,还应该支持重新定位