我有一个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();

上面的示例省略了清除代码以停止播放并丢弃流。希望有点帮助。

08-07 21:13