改变系统音量



我正试图从我的WPF应用程序控制系统声音音量,但没有任何变化。我在谷歌上搜索了一些例子,找到了一个来自:PCVolumeControl。

如果我尝试GetVolume(),它给我的值在0到100之间。如果我使用SetVolume(80), PC声音不会改变。再次,如果我尝试GetVolume(),它返回80。

我不知道这里出了什么问题。根据网站上的说法,它可能不适合64位,但我没有看到明确的答案。

感谢您的帮助。

我从这个链接得到了以下snippet,并且我在我的本地系统中有tested,它工作正常,但我不确定,它是否适合WPF

问题标记:VB.NET
Imports System.Runtime.InteropServices
Public Class Form1
            <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
            End Function
            Const WM_APPCOMMAND As UInteger = &H319
            Const APPCOMMAND_VOLUME_UP As UInteger = &HA
            Const APPCOMMAND_VOLUME_DOWN As UInteger = &H9
            Const APPCOMMAND_VOLUME_MUTE As UInteger = &H8
            Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                SendMessage(Me.Handle, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000)
            End Sub
            Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
                SendMessage(Me.Handle, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_DOWN * &H10000)
            End Sub
            Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
                SendMessage(Me.Handle, WM_APPCOMMAND, &H200EB0, APPCOMMAND_VOLUME_MUTE * &H10000)
            End Sub
End Class

了解MediaElement属性

下面是它的链接。

http://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement.volume.aspx

像这样改变音量>>

<Slider Minimum="0" Maximum="1" ValueChanged="ValueChanged"/>
private void ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    media.Volume = e.NewValue;
}

最新更新