2

我正在使用此处提供的代码。

http://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control

我正在尝试控制我的应用程序的数量和我的应用程序启动的 1 个附加进程。有没有办法根据应用程序而不是master来使用上面的代码?

这是表格中的代码

            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());


    }

最终目标是在不控制所有应用程序的主音量的情况下控制我的应用程序和另一个进程的音量。所以我可以将它们静音,但仍然使用 Skype 语音聊天作为示例。我会以错误的方式解决这个问题吗?

谢谢。

4

0 回答 0