首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c#中通过wmplib更改mp3播放的音量

在c#中通过wmplib更改mp3播放的音量
EN

Stack Overflow用户
提问于 2013-01-26 01:39:20
回答 3查看 5.5K关注 0票数 3

是否可以改变通过wmplib播放的mp3文件的音量?改变程序本身的音量也没问题。

有什么解决方案可以解决这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-26 02:45:49

这个想法是发送WM_APPCOMMAND message (也可以参见this answer)。

对于WPF,使用WindowInteropHelper获取WindowHandle

代码语言:javascript
复制
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 Property

代码语言:javascript
复制
class MainForm : Form
{
    ...

    private void VolumeUp()
    {
        SendMessageW(Handle, (IntPtr)WM_APPCOMMAND, Handle, (IntPtr)APPCOMMAND_VOLUME_UP);
    }
}
票数 2
EN

Stack Overflow用户

发布于 2013-07-21 08:24:58

这是一种简单的方法。

示例:

代码语言:javascript
复制
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)

希望对你有帮助!

票数 7
EN

Stack Overflow用户

发布于 2014-10-17 03:00:05

这对我很有效!

代码语言:javascript
复制
WMPLib.WindowsMediaPlayer wmsound= new WMPLib.WindowsMediaPlayer();

wmsound.URL = @"C:\Users\USER\sound.mp3";

//Volume 100%
finish_sound.settings.volume = 100;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14527339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档