ここで提供されているこのコードを使用しています。
http://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control
アプリケーションのボリュームと、アプリケーションが開始する 1 つの追加プロセスを制御しようとしています。マスターの代わりにアプリケーションごとに上記のコードを使用する方法はありますか?
ここにフォームのコードがあります
MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
beiVolumControl.EditValue = (int)(device.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
リストされたコメントによって、わかりやすい名前を使用してデバイスを選択する方法がありますが、どこにもリストされている例はありません。
音量スライダーが変更されたときに使用されるコードは次のとおりです
//change the Volume
void ritbVolumeControl_EditValueChanged(object sender, EventArgs e)
{
TrackBarControl trackBar = sender as TrackBarControl;
//only use in vista or above.
if (useAlternateSound == false)
{
device.AudioEndpointVolume.MasterVolumeLevelScalar = ((float)trackBar.Value / 100.0f);
}
else
{
//probably using xp or lower.
}
// MessageBox.Show(trackBar.Value.ToString());
}
最終目標は、すべてのアプリケーションのマスターボリュームを制御せずに、可能であればアプリケーションと他のプロセスのボリュームを制御することです。だから私はそれらをミュートしても、例としてスカイプボイスチャットを使用できます. 私はこれについて間違った方法で進んでいますか?
ありがとう。