Thema: Delphi Aufnahmequelle wählen?

Einzelnen Beitrag anzeigen

Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: Aufnahmequelle wählen?

  Alt 10. Mär 2007, 11:13
Hallo,

hab eine Lösung gefunden. Ist zwar nicht unbedingt das, was ich mir vorgestellt hab, aber unterm Strich auf jeden Fall sauberer.

Hab keine Antworten und Lösungen gefunden, wie ich die globale Windows-Einstellung umstelle. Deswegen habe ich die entsprechenden Teile in der Anwendung von "TAudioIO" mit "BASS" ersetzt, welche gewünschte Funktionen unterstützt.

Delphi-Quellcode:
function BASS_Initialize_Recording_Device: Boolean;
var
  i: Integer;
  ChannelName,
  DeviceName: PChar;
  FoundDevice: Boolean;
begin
  Result := FALSE;
  
  // **** Aufnahmegerät auf "USB Audio" setzen
  FoundDevice := FALSE;

  BASS_RecordFree;
  i := 0;
  DeviceName := BASS_RecordGetDeviceDescription (i);
  while DeviceName <> nil do
    begin
      if (StrPas(DeviceName) = SOURCE_AUDIO_NAME) then
        begin
          BASS_RecordInit (i);
          FoundDevice := TRUE;
          break;
        end;
      inc (i);
      DeviceName := BASS_RecordGetDeviceDescription (i);
    end; // while

  if not FoundDevice then
    raise Exception.Create ('Fehler: Das Audiogerät "' + SOURCE_AUDIO_NAME + '" konnte nicht gefunden werden.');

  // **** Aufnahmequelle auf "LineIn" und max. Lautstärke setzen
  FoundDevice := FALSE;
  i := 0;
  ChannelName := BASS_RecordGetInputName(i);
  while ChannelName <> nil do
    begin
      if (StrPas(ChannelName) = SOURCE_AUDIO_INPUT) then
        begin
          FoundDevice := TRUE;
          BASS_RecordSetInput (i, BASS_INPUT_ON or BASS_INPUT_LEVEL or 100);
          break;
        end;
      inc(i);
      ChannelName := BASS_RecordGetInputName(i);
    end; // while

  if not FoundDevice then
    raise Exception.Create ('Fehler: Für das Audiogerät "' +
            SOURCE_AUDIO_NAME + '" konnte die Quelle "' +
            SOURCE_AUDIO_INPUT + '" nicht gewählt werden.');

  // ****

  Result := TRUE;
end;
  Mit Zitat antworten Zitat