Thema: Delphi GetChannelsPeakValues

Einzelnen Beitrag anzeigen

DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
145 Beiträge
 
Delphi 12 Athens
 
#1

GetChannelsPeakValues

  Alt 18. Mai 2024, 22:11
Hallo,
ich hab mich da etwas mit GetChannelsPeakValues verzettelt und finde die Lösung einfach nicht.
Hat da jemand einen Tip ?

Code:
procedure TfrmMain.Timer100msTimer(Sender: TObject);
var
  Levels: array[0..1] of Single;
  ChannelCount: UInt;
begin
  Peak.GetMeteringChannelCount(ChannelCount);
  if (ChannelCount = 2) then begin

    (* NUR ZUR AUFRUF-INFO:
    IAudioMeterInformation = interface(IUnknown)
      ['{C02216F6-8C67-4B5B-9D00-D008E73E0064}']
      function GetPeakValue(out pfPeak: Single): HRESULT; stdcall;
      function GetMeteringChannelCount(out pnChannelCount: UINT): HRESULT; stdcall;
      function GetChannelsPeakValues(u32ChannelCount: UINT; out afPeakValues: pSingle): HRESULT; stdcall;
      function QueryHardwareSupport(out pdwHardwareSupportMask: UINT): HRESULT; stdcall;
    end;
    *)
   
    Peak.GetChannelsPeakValues(ChannelCount, @Levels[0]); <- Hier hab ich mich festgefummelt mit dem @Levels, das ist falsch! Soll ja pSingle sein (?)
    VuMeterL.Position := Round(Levels[0] * 100);
    VuMeterR.Position := Round(Levels[1] * 100);
  end else begin
    Peak.GetPeakValue(Levels[0]);
    VuMeterL.Position := Round(Levels[0] * 100);
    VuMeterR.Position := VuMeterL.Position;
  end;
end;
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat