Hey,
momentan liste ich mir mit folgendem Code alle Aufnahmegeräte des Computers auf:
Delphi-Quellcode:
var
I: Integer;
hMixerHandle: HMIXER;
MixerCaps: TMixerCaps;
begin
for I := 0 to mixerGetNumDevs -1 do
begin
if (mixerOpen(@hMixerHandle, I, 0, 0, MIXER_OBJECTF_WAVEIN) =
MMSYSERR_NOERROR) then
begin
try
FillChar(MixerCaps, SizeOf(MixerCaps), #0);
if (mixerGetDevCaps(hMixerHandle, @MixerCaps, SizeOf(TMixerCaps)) =
MMSYSERR_NOERROR) then
begin
Memo1.Lines.Add(IntToStr(I) + ': ' + MixerCaps.szPname);
end;
finally
mixerClose(hMixerHandle);
end;
end;
end;
end;
Funktioniert alles wunderbar, nur leider ist szPname im MixerCaps Struct auf 32 Zeichen begrenzt.
1)
Hat da jemand eine alternative Lösung parat?
2)
nur sekundär, aber fals sich jemand mit auskennt, gibt es eine Möglichkeit zu prüfen, ob das Gerät bereit ist? In der Systemsteuerung von Windows, wird z.b. nur bei Geräten, die bereit zur Verwendung sind, ein live Lautstärkepegel angezeigt (Win7)
Viele Grüße
Zacherl