Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Musik-Resource aus DLL in TBassdllPlayer laden (https://www.delphipraxis.net/72488-musik-resource-aus-dll-tbassdllplayer-laden.html)

Balu der Bär 1. Jul 2006 12:23


Musik-Resource aus DLL in TBassdllPlayer laden
 
Moin,

ein kleines Problem, woran ich aber einfach nicht weiter komme:

Ich habe einige Lieder in eine Resource gepackt, mir dann eine DLL erstellt und möchte in meiner Applikation diese Lieder nun mittels des TBassdllPlayers (aus der DP) abspielen. Dazu habe ich mir eine kleine Funktion geschrieben, die leider noch ihren Dienst versagt:
Delphi-Quellcode:
function LoadMusicLibrary(BassPlayer: TBassdllPlayer; Listbox: TListbox) : Boolean;
var
h : THandle;
id : String;
item : Integer;
Sound : String;
begin
 h := LoadLibrary('.\lib\music.dll');
  if h <> 0 then
   begin
    try
     item := random(4) + 1;
     case item of
     1: Sound := 'Music01';
     2: Sound := 'Music02';
     3: Sound := 'Music03';
     4: Sound := 'Music04';
     end;
     BassPlayer.LoadFromResourceName(PChar(Sound), RC_Music);
     BassPlayer.Play;
    finally
     FreeLibrary(h);
   end;
  end;
end
 else ShowMessage('Loading [Music] has failed!');
end;
Problem ist nur, dass die Resourcen (Musik01, Musik02, etc) nicht gefunden werden. Scheinbar muss ich ja noch irgendwo angeben das alles in dem Handle h liegt oder? Hat da jemand ne Idee?

Danke euch schonmal. :-)

turboPASCAL 1. Jul 2006 12:38

Re: Musik-Resource aus DLL in TBassdllPlayer laden
 
Ja, ich. Das müsste ich noch einbauen. :mrgreen:

Balu der Bär 1. Jul 2006 12:39

Re: Musik-Resource aus DLL in TBassdllPlayer laden
 
Könntest du dich bitte beeilen? :mrgreen:

Oder gibt es nicht auch einen anderen Weg wie ich das schnell selbst hinbekomme? :gruebel:

turboPASCAL 1. Jul 2006 12:45

Re: Musik-Resource aus DLL in TBassdllPlayer laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nich drängeln... :mrgreen:

Done.


Add Function:
Delphi-Quellcode:
function TBassPlayer.LoadFromResourceNameEx(Insance: HInst;
  ResourceName: PChar; ResTyp: TRC_ResourceTyp): Boolean;
Verwendung:

Delphi-Quellcode:
var
  DllHandle : THandle;

procedure TFormX.FormCreate(Sender: TObject);
begin
  DllHandle := LoadLibrary('.\lib\music.dll');
end;

procedure TFormX.FormDestroy(Sender: TObject);
begin
  if DllHandle <> 0 then FreeLibrary(DllHandle);
end;

function TFormX.LoadMusicLibrary(BassPlayer: TBassdllPlayer; Listbox: TListbox) : Boolean;
var
  id : String;
  item : Integer;
  Sound : String;
begin
  if DllHandle <> 0 then
  begin
    item := random(4) + 1;
    case item of
      1: Sound := 'Music01';
      2: Sound := 'Music02';
      3: Sound := 'Music03';
      4: Sound := 'Music04';
    end;
    if BassPlayer.LoadFromResourceNameEx(DllHandle, PChar(Sound), RC_Music) then BassPlayer.Play;
  end else
    ShowMessage('Loading [Music] has failed!');
end;

Balu der Bär 1. Jul 2006 15:54

Re: Musik-Resource aus DLL in TBassdllPlayer laden
 
Dank turboPASCALs Hilfe geht es jetzt, danke an turboPASCAL. :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz