Форум: "Система";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
ВнизПрога на другом компе не работает. В проге 3 строчки :( Найти похожие ветки
← →
Doctor Deejay (2002-06-28 18:43) [0]Данный код не срабатывает на компе соседа! В чем трабл???
Только без приколов, бо совсем замучался....
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;
← →
Volj (2002-06-28 18:56) [1]А что это за TAuxCaps такой? ActiveX, небось? Если да, то его надо ставить...
← →
Doctor Deejay (2002-06-29 10:41) [2]>Volj © (28.06.02 18:56)
Нет, эти строки выводят в мемо список всех доступных девайсов звуковой карты
← →
Wizard_Ex (2002-06-29 13:16) [3]Может у него карты как раз и нету ? :-)
← →
Doctor Deejay (2002-06-30 00:17) [4]Есть карта. Проверял у 8 челове. У них карты начиная от ЕСС и заканчивая лайвом...
Может все-таки что-то установить нужно?
Напишите кому исходник прислать, пусть у себя перекомпилит и проверит.
Очень нужно, т.к. прога очень полезная, но не работает ни у кого...... :(
← →
Doctor Deejay (2002-06-30 09:31) [5]
НУ ПОМОГИТЕ ХОТЬ ЧЕМ-ТО
← →
Polevi (2002-06-30 09:57) [6]да, полезная программа :-)
← →
Doctor Deejay (2002-06-30 11:58) [7]Программа полезная. Но эти три строчки не работают на других тачках. Может дело в ДЛЛ?
← →
Anatoly Podgoretsky (2002-06-30 12:13) [8]Ряд допольнительных вопросов
1. чему равно auxGetNumDevs
2. какое значение LastError в случае 0
Ты очень самонадеянный если думаешь, что в системе/программе не бывает ошибок, надо хотя бы минимальную обработку делать
← →
Doctor Deejay (2002-06-30 13:56) [9]
У меня на компе она работает, а у других нет.
>Ряд допольнительных вопросов
>1. чему равно auxGetNumDevs
Количеству доступных девайсов
← →
Anatoly Podgoretsky (2002-06-30 14:20) [10]Да не назначение, а какое количество возвращает
← →
NailS (2002-06-30 15:24) [11]Попробуй так
begin
if auxGetNumDevs = 0 then ShowMessage(SysErrorMessage(GetLastError));
end;
Если сообщения не будет попробуй отключить оптимизацию кода
и перед циклом присвой i := 0 (своего рода шаманство, но иногда помогает ;))
← →
Doctor Deejay (2002-06-30 19:57) [12]Ещё раз повторяю - ПРОГА работае только у меня, почему не работает у других?
Ошибка где-то в коде, т.к. систему всю только переставил!
Я попробую сдать так как вы сказали.
Если хотите, то я могу прислать вам exe + исходник. exe работать не будет, пока вы его у себя не скомпилите!!!
Я уже 2 недели трахаюсь с этим
← →
Cobalt (2002-06-30 20:47) [13]говорит, что параметр задан неверно.
У меня ESS688 PnP AudioDrive
P.S. Приведи примеры карт, у которых обнаружены Auxiliary output devices
Скорее всего, проблема в устройствах
← →
Doctor Deejay (2002-06-30 21:28) [14]
А как мне тогда определить все доступные устройства звуковухи?
Ну т.е. миди, вэйв мик и т.д.
← →
Anatoly Podgoretsky (2002-06-30 21:32) [15]А мы с 28 спрашивает, какое значение возвращает auxGetNumDevs и если оно равно нулю, то какую ошибку возвращает Windows, тебе даже и код привели NailS © (30.06.02 15:24)
← →
Doctor Deejay (2002-07-02 00:58) [16]> какую ошибку возвращает Windows, тебе даже и код привели NailS > © (30.06.02 15:24)
при нуле возвращает:
The parameter is incorrect
Причем у трёх моих друзей!
← →
Mashinist (2002-07-02 01:08) [17]Судя по всему, трабла в железяках.
На первый взгляд - возможно, VIA и Intel.
То есть, дрова к VIA, дрова к аудио и т.д.
Трабла явно не в коде, а в железе.
Опиши конфигурацию.
← →
TCArmAgeDDoN (2002-07-02 09:02) [18]Не...Ты лучше расскажи , как не работает? Ошибку выдаёт или просто устройства не видет?
← →
Doctor Deejay (2002-07-02 09:39) [19]
if auxGetNumDevs = 0 then ShowMessage(SysErrorMessage(GetLastError));
На других машинах всегда 0
А у меня все нормально!
← →
Widemaer (2002-07-02 09:40) [20]Пришли свой файлец - посмотрю.
← →
alexadvanser (2002-07-02 09:47) [21]Я бы тоже хотел взглянуть...
← →
Леван (2002-07-02 10:02) [22]Я тоже попробовал 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!
← →
Doctor Deejay (2002-07-02 10:22) [23]А КАК ТОГДА ОПРЕДЕЛИТЬ ВСЕ ДОСТУПНЫЕ ДЕВАЙСЫ ЗВУКОВОЙ КАРТЫ???????
Я уверен, что это возможно.
Мне нужно регулировать виндовую громкость.
Если будет другой выход - буду очень раз
← →
handra (2002-07-02 10:37) [24]а почему auxGetNumDevs, во всяко случае лучше воспользоваться функциями
mixer...
← →
Doctor Deejay (2002-07-02 11:03) [25]
Можно пример или хотя бы название функций?
← →
Doctor Deejay (2002-07-02 12:02) [26]>handra © (02.07.02 10:37)
>а почему auxGetNumDevs, во всяко случае лучше воспользоваться >функциями mixer...
Что за функции?
← →
Doctor Deejay (2002-07-02 13:55) [27]mixerGetLineInfo - это должно помочь?
← →
Севостьянов Игорь (2002-07-02 14:15) [28]Есть тут у меня компонент + пример для твоего случая
Там и определение устроств и запись в файл, и проигрыш, и регулятор звука
Ну например вот куски оттуда
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;
Надо ? Пиши на мыло, пришлю, но компиляция не проходит (разработчик в пример напихал еще кучу хлама типа Оссцилограф для отображения уровня звука наверное)
Не помещается все ...
← →
Севостьянов Игорь (2002-07-02 14:17) [29]Есть просто регулятор звука для разных устройств
вот кусок оттуда
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
← →
Doctor Deejay (2002-07-02 14:59) [30]И где тут для микрофона?
На мыло выслал!
← →
Севостьянов Игорь (2002-07-02 15:40) [31]На мыло выслал...
Посмотришь может и для микр-на есть... Я не смотрел...
Блин еле отправил тебе письмо - mail.ru глючил...
Если пришло несколько - моя вина - сервер б-дский
← →
asmer (2002-07-04 00:42) [32]auxGetNumDevs - возвращает количество _дополнительных_ устройств вывода на карте... а на многих современных картах таких вааще нету :) потому, что установленные на какой-нить сб-платине выходы под тыловые колонки недоступны для апишного доступа, к ним через дрова обращаются... а функция mixerGetNumDevs возвращает количество всех устройств, доступных на плате... типа, и об ентом уже сказал товарисч... млин... как его... скроллинг на мышке чё-та заглючил... больше никого с грязными руками к моему компу не подпущу!..
← →
B_Sergey (2002-08-05 23:20) [33]У тебя плохой комп, выкень его или поменяйся с соседом.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.009 c