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;