C++ Builder下的音量控制

这篇博客介绍了如何在C++ Builder环境下通过WinAPI来控制音量,包括获取和设置音量大小、静音状态等功能。示例代码展示了音量控制的实现方法,如`waveOutSetVolume`函数的使用,以及混合器API来精细化控制不同设备的音量和静音状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 首先给我的:控制主音量的大小 使用于一般的多媒体

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "mmsystem.h"
#include "volume.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

#define WVolumeR(V,P)((DWORD)(V) & 0x0000FFFF | ((P)<<24 ))
#define WVolumeL(V,P)((DWORD)(V) &0xFFFF0000  | ((P)<<8 ))
#define RVolume(V) ((DWORD) ((V)>>24) &((V)>>8))
#define WVolume(P) ((DWORD)((P)<<24) | ((P)<<8))

void __fastcall GetVolume(void);

 

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{

}
//---------------------------------------------------------------------------


void __fastcall TForm1::TB_VChange(TObject *Sender)
{
        int pos;
        pos=TB_V->Position;
        waveOutSetVolume(0,WVolume(pos));
        Edit1->Text =String(WVolume(pos));
        GetVolume();

}
//---------------------------------------------------------------------------


void __fastcall TForm1::GetVolume(void)
{
        DWORD  vol;
        waveOutGetVolume(0,&vol);
        TB_V->Position=RVolume(vol);
        Edit1->Text=TB_V->Position   ;//显示音量的大小
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        GetVolume();
}
//---------------------------------------------------------------------------

 

 

 

 

 

下面这个转至:很全面 大家看下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值