AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Audio Aufnahmegeräte auflisten (Name wird abgeschnitten)
Thema durchsuchen
Ansicht
Themen-Optionen

Audio Aufnahmegeräte auflisten (Name wird abgeschnitten)

Offene Frage von "Zacherl"
Ein Thema von Zacherl · begonnen am 28. Okt 2009 · letzter Beitrag vom 2. Nov 2009
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Audio Aufnahmegeräte auflisten (Name wird abgeschnitten)

  Alt 28. Okt 2009, 21:25
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
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Aufnahmegeräte auflisten (Name wird abgeschnitten)

  Alt 29. Okt 2009, 15:17
Keine ne Idee?

Die DeviceTopology APIs sind leider erst ab Vista vorhanden und dieses ActiveX / Interface Zeugs würde ich auch sehr gerne vermeiden.
http://msdn.microsoft.com/en-us/library/ms678714(VS.85).aspx
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Audio Aufnahmegeräte auflisten (Name wird abgeschnitten)

  Alt 29. Okt 2009, 15:19
Kannst du die Wide-Version von mixerGetDevCaps verwenden?
Es gibt ab und zu in der Win-API Längenbegrenzungen bei der Ansi-Version von API's.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Audio Aufnahmegeräte auflisten (Name wird abgeschnitten)

  Alt 29. Okt 2009, 15:57
Die APIs und Strukturen sind jeweils die WideString Varianten, da ich Delphi 2009 verwendet habe. Eigentlich ist der abgeschnittene Name ja auch kein Bug, sondern eine Beschränkung der mixerGetDevCaps API. Wenn man sich die Struktur anschaut:

Delphi-Quellcode:
tagMIXERCAPSW = record
    wMid: WORD; { manufacturer id }
    wPid: WORD; { product id }
    vDriverVersion: MMVERSION; { version of the driver }
    szPname: array [0..MAXPNAMELEN - 1] of WideChar; { product name }
    fdwSupport: DWORD; { misc. support bits }
    cDestinations: DWORD; { count of destinations }
  end;
Sieht man die Begrenzung auf MAXPNAMELEN (32).

Aber irgendwie listet ja auch z.b. die Systemsteuerung unter XP die vorhandenen Geräte auf. Dort ist die Topology API meines Wissens nach noch nicht vorhanden, aber die Namen sind trotzdem nicht abgeschnitten.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Audio Aufnahmegeräte auflisten (Name wird abgeschnitten)

  Alt 2. Nov 2009, 16:55
*push*
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz