3

wmplib 経由で再生されている mp3 ファイルの音量を変更することは何とか可能ですか? プログラム自体の音量を変更しても問題ありません。

これを行うための解決策はありますか?

4

3 に答える 3

7

これは簡単な方法です。

例:

WMPlib.WindowsMediaPlayer wmp = new WMPlib.WindowsMediaPlayer(); //Creates an instance of the WMP
wmp.url="URI to media source"; //Sets media source
wmp.settings.volume= 50;  //Volume can be 0-100 (inclusive)

それがあなたを助けたことを願っています!

于 2013-07-21T00:24:58.140 に答える
2

アイデアは、WM_APPCOMMAND メッセージを送信することです (この回答も参照してください)。

WPFの場合、 WindowInteropHelperを使用して以下を取得しHandleますWindow

class MainWindow : Window
{
    ...

    private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
    private const int WM_APPCOMMAND = 0x319;
    private const int APPCOMMAND_VOLUME_UP = 10 * 65536;
    private const int APPCOMMAND_VOLUME_DOWN = 9 * 65536;

    [DllImport("user32.dll")]
    public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

    private void VolumeUp()
    {
        // APPCOMMAND_VOLUME_UP or APPCOMMAND_VOLUME_DOWN
        var windowInteropHelper = new WindowInteropHelper(this);
        SendMessageW(windowInteropHelper.Handle, (IntPtr)WM_APPCOMMAND, windowInteropHelper.Handle, (IntPtr)APPCOMMAND_VOLUME_UP);
    }
}

Windows フォームの場合、Control.Handle プロパティを使用します。

class MainForm : Form
{
    ...

    private void VolumeUp()
    {
        SendMessageW(Handle, (IntPtr)WM_APPCOMMAND, Handle, (IntPtr)APPCOMMAND_VOLUME_UP);
    }
}
于 2013-01-25T18:45:49.200 に答える