【发布时间】:2011-10-10 02:26:48
【问题描述】:
我已使用以下方法初始化设备:
static IWavePlayer waveOut;
static WaveFormat waveFormat;
static BufferedWaveProvider waveProvider;
private static int AudioDeviceInit()
{
waveOut = new DirectSoundOut();
waveFormat = new WaveFormat(44100, 2);
waveProvider = new BufferedWaveProvider(waveFormat);
waveOut.Init(waveProvider);
waveOut.Play();
return 0;
}
我正在向它添加 pcm 流:
waveProvider.AddSamples(samples, 0, size);
只要流数据具有相同的配置,上述工作正常。
我有另一个接收采样率和通道数的函数,我想重新配置 waveprovider 以使用新提供的配置。这是我正在使用的代码:
private static void AudioConfigCallback(int rate, int channel)
{
waveFormat = new WaveFormat(rate, channel);
waveProvider = new BufferedWaveProvider(waveFormat);
waveOut.Init(waveProvider);
return;
}
这不起作用,我相信这也不是正确的做法。知道如何重新配置设备以使用新的 sample_rate 和 num_channels
谢谢。
【问题讨论】:
标签: c# naudio directsound