Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
14-1134311456
Иван Петрович
2005-12-11 17:30
2006.01.01
Вопрос наверно лмера)


2-1134464872
orsson
2005-12-13 12:07
2006.01.01
Помогите кто чем может


1-1133510890
Max Y
2005-12-02 11:08
2006.01.01
"Integer overflow" в cxComboBox с одним элементом в списке!?!?!


14-1134334233
JazY
2005-12-11 23:50
2006.01.01
Сложности перехода с Excel на Access


2-1134640643
Uzver
2005-12-15 12:57
2006.01.01
Как открыть файл?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский