Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Изменение источника записи!   Найти похожие ветки 

 
serko ©   (2005-07-29 01:26) [0]

Уважаемые мастера и те кто с таким уже встечался!
Я вот нашел такой компонент AMIXER:
www.progiseregi.narod.ru/other/AMIXER.zip

Так вот, вроде то что мне нужно там есть, но все попытки оттуда вытянуть что то заканчивались выскакиванием не понятных для меня ошибок!
Помогите сделать процедурку которая бы включала Line in и выключала Microphone и наоборот.
Я думаю для знающих людей в этом компоненте все есть!


 
Eraser ©   (2005-07-29 02:00) [1]

function TfmMain.mixGetMic(var ADest, AConnect: integer): boolean;
var
 slDist: TStringList;
 i, idDist: integer;
begin
 result := false;
 if aMixer.Destinations.Count <= 0 then
   exit;
 aMixer.MixerId := 0;
 slDist := TStringList.Create;
 try
   for i := 0 to aMixer.Destinations.Count - 1 do
   begin
     slDist.Add(inttostr(aMixer.Destinations[i].Data.dwComponentType));
   end;
   idDist := slDist.IndexOf(inttostr(MIXERLINE_COMPONENTTYPE_DST_WAVEIN));
   if idDist = -1 then
     exit;
   for i := 0 to aMixer.Destinations[idDist].Connections.Count - 1 do
   begin
     if aMixer.Destinations[idDist].Connections[i].Data.dwComponentType = MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE then
     begin
       ADest := idDist;
       AConnect := i;
       Break;
       //showmessage(aMixer.Destinations[idDist].Connections[i].Data.szName);
     end;
   end;
   Result := true;
 finally
   slDist.Free;
 end;
end;

procedure TfmMain.mixSetMicVolume(AVolume: integer; ACheckOrMute: boolean);
var
 iDist, iConnect, iVol: integer;
begin
 try
   if not mixGetMic(iDist, iConnect) then
     exit;
   iVol := Round(MaxWord / 100 * AVolume);
   aMixer.SetVolume(iDist, iConnect, iVol, iVol, integer(ACheckOrMute));
   //aMixer.SetMute(iDist, iConnect, not ACheckOrMute);
 except
 end;
end;


обрати внимание на integer(ACheckOrMute)!


 
serko ©   (2005-07-30 21:39) [2]

>> Eraser ©   (29.07.05 02:00) [1]
Во-первых спасибо что откликнулся!
При обработке функции mixGetMic в месте первого IF выскакивает ошибка Access violation at address 0044EA39 in module Project!
А у тебя он работает?


 
Eraser ©   (2005-07-31 01:07) [3]

serko ©   (30.07.05 21:39) [2]
При обработке функции mixGetMic в месте первого IF


Имеется ввиду инструкция if aMixer.Destinations.Count <= 0 then
  exit;
?

На форме должен быть брошен компонент TAMIXER, с именем aMixer.


 
serko ©   (2005-07-31 01:22) [4]

> На форме должен быть брошен компонент TAMIXER, с именем aMixer.

Гы! а как его туда кинуть?
Я просто прописал Amixer:TAudioMixer;


 
Eraser ©   (2005-07-31 01:34) [5]

serko ©   (31.07.05 01:22) [4]

Впринципе должно и как ты написал работать. Попробуй MixerId равным 0 поставить.

Гы! а как его туда кинуть?

Из палитры компонентов. Как же ещё??!


 
serko ©   (2005-07-31 13:01) [6]

Eraser ©   (31.07.05 01:34) [5]

>> Впринципе должно и как ты написал работать. Попробуй MixerId равным 0 поставить.

Так он и так равен 0!

....
result := false;
if aMixer.Destinations.Count <= 0 then
  exit;
aMixer.MixerId := 0;
slDist := TStringList.Create;
...


>> Из палитры компонентов. Как же ещё??!
А где его там искать закладки Amixer нет, хотя я и установил компонент!

Проcьба! Ты можеш у себя откомпилировать и выслать мне уже работающий код на ser_ega@ukr.net, а дальше я думаю разберусь! Главное чтоб работал!


 
Eraser ©   (2005-07-31 13:58) [7]

serko ©   (31.07.05 13:01) [6]

см. вкладку Samples.


 
serko ©   (2005-07-31 18:31) [8]

Вау круто все заработало! Спасибо тебе большое ты лудший!
Еще маленький вопрос как будет MIXERLINE_COMPONENTTYPE_SRC_Microphone для Line in?

Еще раз большое тебе спасибо! Дальше уже дело техники!


 
Eraser ©   (2005-08-02 00:40) [9]

serko ©   (31.07.05 18:31) [8]
как будет MIXERLINE_COMPONENTTYPE_SRC_Microphone для Line in?


см. msdn.com
MIXERLINE_COMPONENTTYPE_SRC_LINE



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
14-1133945351
Stilgar
2005-12-07 11:49
2006.01.01
Что вы думаете о конце света?


8-1122776349
pOLyMOrpH
2005-07-31 06:19
2006.01.01
градиент на TPanel


6-1127299648
Denizzz
2005-09-21 14:47
2006.01.01
Как узнать что хост недоступен?


14-1133940181
Думкин
2005-12-07 10:23
2006.01.01
Skyle - с днем тебя. Рождения.


14-1134312985
wicked
2005-12-11 17:56
2006.01.01
APE.CUE vs всё остальное...