Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: Fehler beim Laden von mp3 aus dll

  Alt 10. Apr 2006, 19:57
LoadFromStream ist nicht LoadFromStream. Ne, das ist zum laden eines "normalen Streams".

Ändere mal in der TBassDLLPlayer.pas in Zeile 472 folgendes:

Delphi-Quellcode:
function TBassdllPlayer.LoadFromResourceName(Instance: HInst; ResourceName: PChar;
  ResTyp: TRC_ResourceTyp): Boolean;
var
  i, TmpVolume: Integer;
  ResStream : TResourceStream;
  MemoryStream: TMemoryStream;
begin
  //...

  if ResTyp = RC_MUSIC then
  begin
    ResStream := TResourceStream.Create(Instance, ResourceName, RT_RCDATA);
    // ...
  end else
  if ResTyp = RC_STREAM then
  begin
    ResStream := TResourceStream.Create(Instance, ResourceName, RT_RCDATA);
    // ...
und in Zeile 138

Delphi-Quellcode:
published { Published-Deklarationen }
    function LoadFromFile(FileName: string): boolean;
    //function LoadFromResourceName(ResourceName: PChar; ResTyp: TRC_ResourceTyp): Boolean; // alt
    function LoadFromResourceName(Instance: HInst; ResourceName: PChar; ResTyp: TRC_ResourceTyp): Boolean; // neu

und dann sollte es mit:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  //...
  private
    MySoundLibH: HInst;
  //...

procedure TForm1.ButtonXYZClick(Sender: TObject);
begin
  // Load Stream from Resource (MP3)

  MySoundLibH := LoadLibrary('Resources.dll'); // zB. ins FormCreate verschieben
  if MySoundLibH <> 0 then
  begin
    if not BassdllPlayer1.LoadFromResourceName(MySoundLibH, 'MP3STREAM', RC_STREAM) then ; //... ErrorMsg o. ä.
    // Start playing
    BassdllPlayer1.Play;

    FreeLibrary(MySoundLibH); // zB. ins FormDestroy verschieben
  end else ; //... ErrorMsg o. ä.
end;
funktionieren.

H := LoadLibrary('Sound.dll'); undFreeLibrary(H); würde ich aber als "global deklar." da gegf. sonst ein Fehler kommt. (nach laden aus dem Stream)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat