Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прога на другом компе не работает. В проге 3 строчки :( [D5, Win95/98, WinME, Win2k, WinXP]


Страницы:   1 2

Doctor Deejay ©   (2002-06-28 18:43:00) 

Данный код не срабатывает на компе соседа! В чем трабл???
Только без приколов, бо совсем замучался....

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
cap: TAuxCaps;
begin
for i := 0 to auxGetNumDevs - 1 do begin
auxGetDevCaps(i, Addr(cap), SizeOf(cap));
ListBox1.Items.Add(cap.szPname)
end;
end;


B_Sergey   (2002-08-05 23:20:00) [1]

У тебя плохой комп, выкень его или поменяйся с соседом.


asmer   (2002-07-04 00:42:00) [2]

auxGetNumDevs - возвращает количество _дополнительных_ устройств вывода на карте... а на многих современных картах таких вааще нету :) потому, что установленные на какой-нить сб-платине выходы под тыловые колонки недоступны для апишного доступа, к ним через дрова обращаются... а функция mixerGetNumDevs возвращает количество всех устройств, доступных на плате... типа, и об ентом уже сказал товарисч... млин... как его... скроллинг на мышке чё-та заглючил... больше никого с грязными руками к моему компу не подпущу!..


Севостьянов Игорь   (2002-07-02 15:40:00) [3]

На мыло выслал...
Посмотришь может и для микр-на есть... Я не смотрел...
Блин еле отправил тебе письмо - mail.ru глючил...
Если пришло несколько - моя вина - сервер б-дский


Doctor Deejay   (2002-07-02 14:59:00) [4]

И где тут для микрофона?
На мыло выслал!


Севостьянов Игорь   (2002-07-02 14:17:00) [5]

Есть просто регулятор звука для разных устройств

вот кусок оттуда

function TAudioMixer.SetVolume (ADestination,AConnection:Integer;LeftVol,RightVol,Mute:Integer):Boolean;
var MD:TMixerDestination;
MC:TMixerConnection;
Cntrls:TMixerControls;
MCD:TMixerControlDetails;
Cntrl:PMixerControl;
A,B:Integer;
ML:TMixerLine;
details:array [0..30] of Integer;
VolSet,MuteSet:Boolean;
begin
Result:=False;
MD:=Destinations[ADestination];
If MD<>nil then
begin
If AConnection=-1 then
begin
Cntrls:=MD.Controls;
ML:=MD.Data;
end
else
begin
MC:=MD.Connections[AConnection];
If MC<>nil then
begin
Cntrls:=MC.Controls;
ML:=MC.Data;
end
else
Cntrls:=nil;
end;
If Cntrls<>nil then
begin
A:=0;
VolSet:=LeftVol=-1;
MuteSet:=Mute=-1;
Result:=True;
while (not VolSet OR not MuteSet) AND (A<Cntrls.Count) do
begin
Cntrl:=Cntrls[A];
If Cntrl<>nil then
begin
If ((Cntrl.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME) OR
(Cntrl.dwControlType = MIXERCONTROL_CONTROLTYPE_MUTE)) AND
(Cntrl.fdwControl AND MIXERCONTROL_CONTROLF_MULTIPLE<>MIXERCONTROL_CONTROLF_MULTIPLE)
then
begin
MCD.cbStruct:=SizeOf(TMixerControlDetails);
MCD.dwControlID:=Cntrl.dwControlID;
If Cntrl.fdwControl AND MIXERCONTROL_CONTROLF_UNIFORM>0 then
MCD.cChannels:=1
else
MCD.cChannels:=ML.cChannels;
MCD.cMultipleItems:=0;
MCD.cbDetails:=SizeOf(Integer);
MCD.paDetails:=@Details;
If (Cntrl.dwControlType=MIXERCONTROL_CONTROLTYPE_VOLUME) AND not VolSet then
begin
Details[0]:=LeftVol;
If RightVol=-1 then
Details[1]:=LeftVol
else
Details[1]:=RightVol;
VolSet:=True;
end
else
If (Cntrl.dwControlType=MIXERCONTROL_CONTROLTYPE_MUTE) AND not MuteSet then
begin
Details[0]:=Mute;
MuteSet:=True;
end;
mixerSetControlDetails (FMixerHandle,@MCD,MIXER_GETCONTROLDETAILSF_VALUE);
end;
end;
Inc (A);
end;
If not MuteSet then
begin
If AConnection<>-1 then
begin
Cntrls:=MD.Controls;
ML:=MD.Data;
If Cntrls<>nil then
begin
A:=0;
while not MuteSet AND (A<Cntrls.Count) do
begin
Cntrl:=Cntrls[A];
If (Cntrl.dwControlType = MIXERCONTROL_CONTROLTYPE_MIXER) OR
(Cntrl.dwControlType = MIXERCONTROL_CONTROLTYPE_MUX) then
begin
MCD.cbStruct:=SizeOf(TMixerControlDetails);
MCD.dwControlID:=Cntrl.dwControlID;
If Cntrl.fdwControl AND MIXERCONTROL_CONTROLF_UNIFORM>0 then
MCD.cChannels:=1
else
MCD.cChannels:=ML.cChannels;
If Cntrl.fdwControl AND MIXERCONTROL_CONTROLF_MULTIPLE=MIXERCONTROL_CONTROLF_MULTIPLE then
MCD.cMultipleItems:=Cntrl.cMultipleItems
else
MCD.cMultipleItems:=0;
MCD.cbDetails:=4;
MCD.paDetails:=@Details;
MuteSet:=True;
mixerGetControlDetails (FMixerHandle,@MCD,MIXER_GETCONTROLDETAILSF_VALUE);
if (Cntrl.dwControlType = MIXERCONTROL_CONTROLTYPE_MUX) then
For B:=0 to Cntrl.cMultipleItems-1 do
Details[B]:=0;
Details[AConnection]:=Mute;
mixerSetControlDetails (FMixerHandle,@MCD,MIXER_GETCONTROLDETAILSF_VALUE);
end;
Inc (A);
end;
end;
end;
end;
end;
end;
end;


Все идет через Mixer, я не разбирался мне не надо...
У себя эти вещи проверил под Win2000
А твой пример не работает т.к. auxGetNumDevs = 0


Севостьянов Игорь   (2002-07-02 14:15:00) [6]

Есть тут у меня компонент + пример для твоего случая
Там и определение устроств и запись в файл, и проигрыш, и регулятор звука

Ну например вот куски оттуда

function TMixerSettings.Query(var Product,Formats:string):boolean;
var
PMix : PMixDetails;
i : integer;
begin
Result:=false;
Product:=""; Formats:="";
if MixerReady then begin
if (mixerGetNumDevs=0) then begin
Formats:="Mixer not present";
end else begin
PMix:=MixerStart;
if PMix<>nil then Product:=PMix.Name;
Formats:="Mixer devices present: "+IntToStr(mixerGetNumDevs)+". DeviceID "+
IntToStr(FAudio.FMixerDeviceID)+" has:";
i:=0; PMix:=PMix^.Next;
while PMix<>nil do begin
if (PMix.Destination=i) then begin
Formats:=Formats+#13#10+PMix.Name+": ";
i:=i+1;
end else begin
Formats:=Formats+PMix.Name+", ";
end;
PMix:=PMix^.Next;
end;
Result:=true;
end;
end;
end;

Надо ? Пиши на мыло, пришлю, но компиляция не проходит (разработчик в пример напихал еще кучу хлама типа Оссцилограф для отображения уровня звука наверное)

Не помещается все ...


Doctor Deejay   (2002-07-02 13:55:00) [7]

mixerGetLineInfo - это должно помочь?


Doctor Deejay   (2002-07-02 12:02:00) [8]

>handra © (02.07.02 10:37)
>а почему auxGetNumDevs, во всяко случае лучше воспользоваться >функциями mixer...

Что за функции?


Doctor Deejay   (2002-07-02 11:03:00) [9]

Можно пример или хотя бы название функций?


handra   (2002-07-02 10:37:00) [10]

а почему auxGetNumDevs, во всяко случае лучше воспользоваться функциями mixer...


Doctor Deejay   (2002-07-02 10:22:00) [11]

А КАК ТОГДА ОПРЕДЕЛИТЬ ВСЕ ДОСТУПНЫЕ ДЕВАЙСЫ ЗВУКОВОЙ КАРТЫ???????

Я уверен, что это возможно.

Мне нужно регулировать виндовую громкость.
Если будет другой выход - буду очень раз


Леван   (2002-07-02 10:02:00) [12]

Я тоже попробовал auxGetNumDevs() на двух машинах
у меня ЕSS 1938, которая устанавливает 2 драивера и auxGetNumDevs
видает 2
Рядом у коллеги Crerative Live и auxGetNumDevs выдает 0
Значит, auxGetNumDevs неправильно срабативает или его функция не совсем понятна:
The auxGetNumDevs function retrieves the number of auxiliary output devices present in the system.

UINT auxGetNumDevs(VOID);

Parameters

This function takes no parameters.

Return Values

Returns the number of device. A return value of zero means that no devices are present or that an error occurred.
Ничего не поделаешь, se la vi!


alexadvanser   (2002-07-02 09:47:00) [13]

Я бы тоже хотел взглянуть...


Widemaer   (2002-07-02 09:40:00) [14]

Пришли свой файлец - посмотрю.


Doctor Deejay   (2002-07-02 09:39:00) [15]

if auxGetNumDevs = 0 then ShowMessage(SysErrorMessage(GetLastError));

На других машинах всегда 0
А у меня все нормально!


TCArmAgeDDoN   (2002-07-02 09:02:00) [16]

Не...Ты лучше расскажи , как не работает? Ошибку выдаёт или просто устройства не видет?


Mashinist   (2002-07-02 01:08:00) [17]

Судя по всему, трабла в железяках.
На первый взгляд - возможно, VIA и Intel.
То есть, дрова к VIA, дрова к аудио и т.д.
Трабла явно не в коде, а в железе.
Опиши конфигурацию.


Doctor Deejay   (2002-07-02 00:58:00) [18]

> какую ошибку возвращает Windows, тебе даже и код привели NailS > © (30.06.02 15:24)

при нуле возвращает:
The parameter is incorrect

Причем у трёх моих друзей!


Anatoly Podgoretsky   (2002-06-30 21:32:00) [19]

А мы с 28 спрашивает, какое значение возвращает auxGetNumDevs и если оно равно нулю, то какую ошибку возвращает Windows, тебе даже и код привели NailS © (30.06.02 15:24)


Doctor Deejay   (2002-06-30 21:28:00) [20]

А как мне тогда определить все доступные устройства звуковухи?
Ну т.е. миди, вэйв мик и т.д.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо