Einzelnen Beitrag anzeigen

Alois

Registriert seit: 23. Jul 2005
71 Beiträge
 
Delphi 10 Seattle Professional
 
#1

.XM Datei als Resource laden

  Alt 16. Mai 2010, 07:54
Hallo,

wenn ich über die bass.dll ein .XM Musikstück direkt von einer Datei abspiele funktioniert es.
Meine versuche es als Resource einzubinden und abzuspielen schlagen fehl. Hat jemand eine eine Idee was ich falsch mache?

so geht's:
Delphi-Quellcode:
BASS_Init(-1, 44100, 0, 0, nil);
XMFileName := ExtractFilePath(ParamStr(0)) + 'music.xm';
XMStream := BASS_MusicLoad(False, PChar(XMFileName), 0, 0,
   bass.BASS_MUSIC_STOPBACK or bass.BASS_MUSIC_RAMP, 0);
und so geht's nicht:
Delphi-Quellcode:
{$R Chiptunes.RES}

...

function TformAbout.LoadFromResourceID(ResourceID: Integer;
  ResourceTyp: PChar): Pointer;
var
  HResInfo: HRSRC;
  HGlobal: THandle;
begin
  HResInfo := FindResource(HInstance, MAKEINTRESOURCE(ResourceID), ResourceTyp);
  HGlobal := LoadResource(HInstance, HResInfo);
  if HGlobal = 0 then
    raise EResNotFound.Create('Can''t load resource: ' + IntToStr(ResourceID));
  Result := LockResource(HGlobal);
end;

...

BASS_Init(-1, 44100, 0, 0, nil);
XMStream := BASS_MusicLoad(False, LoadFromResourceID(100, RT_RCDATA), 0, 0, BASS_MUSIC_STOPBACK or BASS_MUSIC_RAMP, 0);
Den Resource-Stream lade ich über die Chiptunes.rc Datei die ich vorher mit BRCC32.exe Chiptunes.rc generiert habe:
100 RCDATA DISCARDABLE "music.xm" Gruss Alois
  Mit Zitat antworten Zitat