Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

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

AW: DSPACK Beispiel : video Direkt aus Ressource laden !

  Alt 10. Okt 2010, 16:33
Vielleicht liegt es auch nur daran, dass ich seine Sätze nicht genau verstanden habe. Aber wenn ich dem Link im Post folge, dann finde ich auf anhieb ein Beispiel für das Abspielen aus einem Stream heraus:
Delphi-Quellcode:
procedure TForm3.TestCustomStream(Src: TStream; Compress: boolean);
var
  D : TStream;
  TS : TCustomSrcFilter;
  Size: Int64;
begin
  if not FilterGraph.Active then FilterGraph.Active := true;
  FilterGraph.ClearGraph;

  Size := Src.Size;

  D := TMemoryStream.Create;
  try
    D := Src;
    TS := TCustomSrcFilter.Create(D, Compress, Size);
    try
      RenderFilter(TS);
    finally
       log.Lines.Add('* Rendering Complete!');
    end;
  finally
    D:=nil;
    D.Free;
  end;
end;

procedure TForm3.RenderFilter(AFilter: TBCBaseFilter);
var
  FG : IFilterGraph2;
  I : integer;
begin
  FilterGraph.QueryInterface(IFilterGraph2, FG);
  FG.AddFilter(AFilter, 'Test');
  with TPinList.Create(AFilter) do
  try
    for I := 0 to Count - 1 do
      if PinInfo[I].dir = PINDIR_OUTPUT then
        CheckDSError(FG.Render(Items[I]));
  finally
    Free;
  end;
  SoundLevel.Position := FilterGraph.Volume;
  SetNormalSize;
  FilterGraph.Play;
end;
Sogar der Aufruf wird gezeigt:
Delphi-Quellcode:
var
   t : TMemoryStream;
begin
    t:= TMemoryStream.Create;
    try
      t.LoadFromStream(varYourFileStream);
      TestCustomStream(t, false);
    finally
      t:=nil;
      t.Free;
    end;
end;
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat