使用naudio在播放期间调整字节流

时间:2018-03-01 22:58:14

标签: c# audio naudio

我正在使用Naudio作为Visual Studio中的C#音频项目。我正在寻找一个简单的工作示例,说明如何在波形文件到达声卡之前调整其读取流。这是我想要做的一个非工作的例子:

        public static string CurrentFile;
    public WaveOut waveout;

    public WaveFileReader wavereader {
    get { byte[] bts = //somehow Get byte buffer from reader?????
            int i = 0;
            while (i < bts.Length) {
                // do some cool stuff to the stream here
                i++; }
            return bts;//give the adjusted stream back to waveout before playback????
        }  }


    public void go()
    {
        CurrentFile = "c:/Temp/track1 - 0.wav";
        wavereader = new WaveFileReader(CurrentFile);
        waveout.Init(wavereader);
        waveout.Play();
    }

1 个答案:

答案 0 :(得分:1)

您需要创建自己的nvm use OLD_VER 实现来执行音频操作。在每次调用ISampleProvider时,您都会从源提供程序中读取(将波形文件读取器转换为示例提供程序。然后执行DSP。

因此播放代码将如下所示(使用Read

AudioFileReader

然后MyEffects看起来像这样:

CurrentFile = "c:/Temp/track1 - 0.wav";
wavereader = new AudioFileReader(CurrentFile);
var myEffects = new MyEffects(waveReader)
waveout.Init(myEffects);
waveout.Play();