lanfanra
一般會員
發表:48 回覆:51 積分:19 註冊:2003-08-06
發送簡訊給我
|
我看過之前的文章,但都不能用耶???
是否可請各位大大,寫個範例啊...
|
taishyang
站務副站長
發表:377 回覆:5490 積分:4563 註冊:2002-10-08
發送簡訊給我
|
lanfanra您好:
請問您看的是哪一篇文章呢?
不能用指的是沒有效果還是程式方面的問題? 順心
|
lanfanra
一般會員
發表:48 回覆:51 積分:19 註冊:2003-08-06
發送簡訊給我
|
taishyang大哥您好,非常感謝你,因為你幫我解決許多事情,
不過你好像不喜歡寫範例的樣子,如果您願意寫範例出來,
相信受益的人會更多吧. 對了,就此問題,請問
|
taishyang
站務副站長
發表:377 回覆:5490 積分:4563 註冊:2002-10-08
發送簡訊給我
|
lanfanra您好:
引言:
taishyang大哥您好,非常感謝你,因為你幫我解決許多事情,
不過你好像不喜歡寫範例的樣子,如果您願意寫範例出來,
相信受益的人會更多吧.
疑?真的嗎?我不喜歡寫範例?
您太不了解我了,看問題的情況我會做出適當的回應
假如發問者>< face="Verdana, Arial, Helvetica">引言:
對了,就此問題,請問taishyang大大,是否能用自己會的方
法寫個範例呢?...........真的太感謝了
對於聲音處理方面我沒有經驗,但是我以前有看過調整音量大小的範例
並測試過可以WORK,所以當您說您看過以前的文章,才會問您您看的是哪一篇
然後再幫您看看問題在哪邊
href="http://delphi.ktop.com.tw/topic.php?topic_id=30589">http://delphi.ktop.com.tw/topic.php?topic_id=30589 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 -
|
lanfanra
一般會員
發表:48 回覆:51 積分:19 註冊:2003-08-06
發送簡訊給我
|
誤會你了taishyang大大,真抱歉... 我也是看到這篇文章說 #>>>>>>> 但執行到
>> src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=12946319&CC=289541">
|
taishyang
站務副站長
發表:377 回覆:5490 積分:4563 註冊:2002-10-08
發送簡訊給我
|
|
CuteBabyBoy
初階會員
發表:18 回覆:97 積分:48 註冊:2003-07-11
發送簡訊給我
|
|
CuteBabyBoy
初階會員
發表:18 回覆:97 積分:48 註冊:2003-07-11
發送簡訊給我
|
這是我之前所寫的程式....我好像是參考別人所寫出來的...希望對你有幫助
嘻...這是我第一次幫別人解題唷...^^
//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "main.h"
#include "assert.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
ScrollBar2->Enabled = false;
ScrollBar3->Enabled = false;
ScrollBar4->Enabled = false; Initial();
ScrollBar1->Position = GetMasterVolumeValue(MM_Front_Speaker);
ScrollBar2->Position = GetMasterVolumeValue(MM_Subwoofer);
ScrollBar3->Position = GetMasterVolumeValue(WW_Center);
ScrollBar4->Position = GetMasterVolumeValue(MM_Rear_Speaker);
ScrollBar5->Position = GetMasterVolumeValue(MM_Wave);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
UnInitial();
}
//---------------------------------------------------------------------------
//
// Mixer Function
//
//---------------------------------------------------------------------------
void __fastcall TForm1::Initial(void)
{
assert(MM_HMIXER == NULL);
// get the number of mixer devices present in the system
MM_NumMixers = ::mixerGetNumDevs();
MM_HMIXER = NULL;
::ZeroMemory(&MM_MxCaps, sizeof(MIXERCAPS)); MM_Minimum = 0 ;
MM_Maximum = 0 ;
MM_VolumeControlID = 0 ;
MM_DstLineName = "";
MM_VolumeControlName = ""; // open the first mixer
// A "mapper" for audio mixer devices does not currently exist.
if (MM_NumMixers != 0)
{
if (::mixerOpen( &MM_HMIXER,
0,
reinterpret_cast(Handle),
NULL,
MIXER_OBJECTF_MIXER | CALLBACK_WINDOW)
!= MMSYSERR_NOERROR)
{
ShowMessage("Initial Error_1 !!!");
return;
}
if (::mixerGetDevCaps(reinterpret_cast(MM_HMIXER),
&MM_MxCaps, sizeof(MIXERCAPS))
!= MMSYSERR_NOERROR)
{
ShowMessage("Initial Error_2 !!!");
return;
}
}
else
ShowMessage("Initial Error_3 !!!"); GetMasterVolumeControl();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::UnInitial(void)
{
if(MM_HMIXER != NULL)
{
if(::mixerClose(MM_HMIXER) == MMSYSERR_NOERROR)
MM_HMIXER = NULL;
else
ShowMessage("Close MM_HMIXER Error");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GetMasterVolumeControl(void)
{
if (MM_HMIXER == NULL)
{
ShowMessage("GetMasterVolumeControl Error_1");
return ;
} MIXERLINE mxl;
mxl.cbStruct = sizeof(MIXERLINE);
mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
if (::mixerGetLineInfo(reinterpret_cast(MM_HMIXER),
&mxl,
MIXER_OBJECTF_HMIXER |
MIXER_GETLINEINFOF_COMPONENTTYPE)
!= MMSYSERR_NOERROR)
{
ShowMessage("GetMasterVolumeControl Error_2");
return ;
} // get dwControlID
MIXERCONTROL mxc;
MIXERLINECONTROLS mxlc;
mxlc.cbStruct = sizeof(MIXERLINECONTROLS);
mxlc.dwLineID = mxl.dwLineID;
mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
mxlc.cControls = 1;
mxlc.cbmxctrl = sizeof(MIXERCONTROL);
mxlc.pamxctrl = &mxc;
if (::mixerGetLineControls(reinterpret_cast(MM_HMIXER),
&mxlc,
MIXER_OBJECTF_HMIXER |
MIXER_GETLINECONTROLSF_ONEBYTYPE)
!= MMSYSERR_NOERROR)
{
ShowMessage("GetMasterVolumeControl Error_3");
return ;
} MM_DstLineName = mxl.szName;
MM_VolumeControlName = mxc.szName;
MM_Minimum = mxc.Bounds.dwMinimum;
MM_Maximum = mxc.Bounds.dwMaximum;
MM_VolumeControlID = mxc.dwControlID;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SetMasterVolumeValue(double Value)
{
SetMasterVolumeValue(Value,MM_VolumeControlID);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SetMasterVolumeValue(double Value,long ID)
{
if (MM_HMIXER == NULL)
{
ShowMessage("SetMasterVolumeValue Error_1");
return ;
} MIXERCONTROLDETAILS_UNSIGNED mxcdVolume = { Value };
MIXERCONTROLDETAILS mxcd;
mxcd.cbStruct = sizeof(MIXERCONTROLDETAILS);
mxcd.dwControlID = ID;
mxcd.cChannels = 1;
mxcd.cMultipleItems = 0;
mxcd.cbDetails = sizeof(MIXERCONTROLDETAILS_UNSIGNED);
mxcd.paDetails = &mxcdVolume; if (::mixerSetControlDetails(reinterpret_cast(MM_HMIXER),
&mxcd,
MIXER_OBJECTF_HMIXER |
MIXER_SETCONTROLDETAILSF_VALUE)
!= MMSYSERR_NOERROR)
{
ShowMessage("SetMasterVolumeValue Error_2");
return ;
}
}
//---------------------------------------------------------------------------
double __fastcall TForm1::GetMasterVolumeValue(long ID)
{
if (MM_HMIXER == NULL)
{
ShowMessage("GetMasterVolumeValue Error_1");
return 0;
} DWORD Value;
MIXERCONTROLDETAILS_UNSIGNED mxcdVolume;
MIXERCONTROLDETAILS mxcd;
mxcd.cbStruct = sizeof(MIXERCONTROLDETAILS);
mxcd.dwControlID = ID;
mxcd.cChannels = 1;
mxcd.cMultipleItems = 0;
mxcd.cbDetails = sizeof(MIXERCONTROLDETAILS_UNSIGNED);
mxcd.paDetails = &mxcdVolume;
if (::mixerGetControlDetails(reinterpret_cast(MM_HMIXER),
&mxcd,
MIXER_OBJECTF_HMIXER |
MIXER_GETCONTROLDETAILSF_VALUE)
!= MMSYSERR_NOERROR)
{
ShowMessage("GetMasterVolumeValue Error_2");
return 0;
}
return mxcdVolume.dwValue;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
{
SetMasterVolumeValue(ScrollBar1->Position,MM_Front_Speaker);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ScrollBar2Change(TObject *Sender)
{
SetMasterVolumeValue(ScrollBar2->Position,MM_Subwoofer);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ScrollBar3Change(TObject *Sender)
{
SetMasterVolumeValue(ScrollBar3->Position,WW_Center);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ScrollBar4Change(TObject *Sender)
{
SetMasterVolumeValue(ScrollBar4->Position,MM_Rear_Speaker);
}
//--------------------------------------------------------------------------- void __fastcall TForm1::ScrollBar5Change(TObject *Sender)
{
SetMasterVolumeValue(ScrollBar5->Position,MM_Wave);
}
//---------------------------------------------------------------------------
|
taishyang
站務副站長
發表:377 回覆:5490 積分:4563 註冊:2002-10-08
發送簡訊給我
|
CuteBabyBoy您好:
謝謝您熱心的分享< > 順心< >
|
nothing
一般會員
發表:9 回覆:4 積分:2 註冊:2005-08-17
發送簡訊給我
|
請問控制音量的程式還在嗎? 連結在哪裡? 已經爬過相關的文 但沒看到連結?
|