11

私のウェブブラウザ:

XAML:

//...
xmlns:my="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
//...
<my:WindowsFormsHost Name="windowsFormsHost"/>

C# の背後にあるコード:

System.Windows.Forms.WebBrowser Browser = new System.Windows.Forms.WebBrowser();
windowsFormsHost.Child = Browser;

私の質問は、すべてのオーディオ出力を無効にする方法です。

私はこれを見つけました:

C#:

private const int Feature = 21; //FEATURE_DISABLE_NAVIGATION_SOUNDS
private const int SetFeatureOnProcess = 0x00000002;

[DllImport("urlmon.dll")]
[PreserveSig]
[return: MarshalAs(UnmanagedType.Error)]
static extern int CoInternetSetFeatureEnabled(int featureEntry,
  [MarshalAs(UnmanagedType.U4)] int dwFlags, 
  bool fEnable);

問題ありませんが、このコードは「クリック」音のみを無効にするため、この場合は役に立ちません。

私は自分のアプリケーションを 100% ミュートしたいだけで、音はまったくありません。

この Web ブラウザーでは、Windows サウンドを介して行う必要があると読みましたが、コードでこれを行うことができないとは信じられません。

4

2 に答える 2

11

簡単にできる方法をご紹介します。ただし、WebBrowser に固有ではありませんが、あなたが要求したことを行います。アプリケーションから 100% ミュートしたいだけで、音はまったくありません。

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace WinformsWB
{
    public partial class Form1 : Form
    {
        [DllImport("winmm.dll")]
        public static extern int waveOutGetVolume(IntPtr h, out uint dwVolume);

        [DllImport("winmm.dll")]
        public static extern int waveOutSetVolume(IntPtr h, uint dwVolume);

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // save the current volume
            uint _savedVolume;
            waveOutGetVolume(IntPtr.Zero, out _savedVolume);

            this.FormClosing += delegate 
            {
                // restore the volume upon exit
                waveOutSetVolume(IntPtr.Zero, _savedVolume);
            };

            // mute
            waveOutSetVolume(IntPtr.Zero, 0);
            this.webBrowser1.Navigate("http://youtube.com");
        }
    }
}
于 2013-08-21T02:42:13.197 に答える
0

DISPID_AMBIENT_DLCONTROLを使用することもできます

DLCTL_DLIMAGES、DLCTL_VIDEOS、および DLCTL_BGSOUNDS: これらのフラグが設定されている場合、画像、ビデオ、およびバックグラウンド サウンドがサーバーからダウンロードされ、表示または再生されます。フラグが設定されていない場合、それらはダウンロードされず、表示されません。

于 2013-08-29T18:39:16.900 に答える