3

サウンドを再生するには、ウェーブアウトデバイスを選択する必要があります。しかし、私はそれをすることはできません。

void Initialize()
{
_WaveOut = new WaveOut();
var reader = new WaveFileReader(FileName);
_WaveOut.Init(new WaveChannel32(reader));
}

この関数が開始し、次にフォームが開始します。この後、フォームでコンボボックス付きのウェーブアウトデバイスを選択します。コンボボックスには次のコードが含まれています。

for (int i = 0; i < WaveOut.DeviceCount; i++)
{
     WaveOutCapabilities WOC = WaveOut.GetCapabilities(i);
     comboBox2.Items.Add(WOC.ProductName);

}

この後、デバイスを選択します。

int WaveOutDeviceId = comboBox2.SelectedIndex;

そして、再生機能を開始します。

void Play()
{
_WaveOut.DeviceNumber = WaveOutDeviceId;
_WaveOut.Play();
}

しかし、私のサウンドは常にデフォルトのデバイス(番号= 0)で再生されます。マイクに対してこれを行うと、このコードは正しく機能します。

4

1 に答える 1

7

電話をかけたらInit、変更するには遅すぎますDeviceId。デバイスを変更するときの新しいインスタンスを作成することをWaveOutお勧めします。

于 2012-11-07T14:27:19.203 に答える