私は以下を使用してデバイスを初期化しました:
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を使用するようにデバイスを再構成する方法についてのアイデア
ありがとう。