0

使用しているコードが次の場合、コンピューターのマスター ボリューム コントロールに触れずに、アプリケーションでサウンドをミュート/ミュート解除するにはどうすればよいですか。

My.Computer.Audio.Play(My.Resources.audio_here, AudioPlayMode.Background)
4

3 に答える 3

0

winmm.dllのwaveOutSetVolumeおよび関数を見てください。waveOutGetVolume

Private Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Integer, ByVal dwVolume As Integer) As Integer
Private Declare Function waveOutGetVolume Lib "winmm.dll" (ByVal uDeviceID As Integer, ByRef lpdwVolume As Integer) As Integer

waveOutSetVolume 関数

waveOutGetVolume 関数

ターゲット マシンの OS バージョンによっては、新しいAPIの使用を検討する必要がある場合がMMDeviceあります。EndpointVolume

EndpointVolume サンプルコード

于 2013-09-11T15:58:35.627 に答える
0
[DllImport("winmm.dll")]
private static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume);

//mute application
private void mute(){
{
    int NewVolume = 0; //set 0 to unmute
    uint NewVolumeAllChannels = (((uint)NewVolume & 0x0000ffff) | ((uint)NewVolume << 16));
    waveOutSetVolume(IntPtr.Zero, NewVolumeAllChannels);
}

//unmute application
private void unmute(){
{
    int NewVolume = 65535; //set 65535 to unmute
    uint NewVolumeAllChannels = (((uint)NewVolume & 0x0000ffff) | ((uint)NewVolume << 16));
    waveOutSetVolume(IntPtr.Zero, NewVolumeAllChannels);
}
于 2019-10-13T13:18:13.637 に答える