this slowpoke moves

Play MP3 from Resource & Control it

Das folgende Beispiel demonstriert, wie man eine MP3-Datei in den Ressourcenbereich einer EXE einbaut, sie ohne Treiber abspielt und mithilfe der TMediaPlayer Komponente steuert. Denn genutzt werden die installierten Codecs von Windows, die für den Mediaplayer bestimmt sind. Deshalb lassen sich auch nur die Audiodateien abspielen, die der Windows Mediaplayer abspielt.

Schritt 1:
Erstellt ein neues Projekt und legt die TMediaPlayer Komponente auf die Form (zu finden unter System) und speichert es in einem Ordner.

Schritt 2:
Kopiert eure MP3-Datei in den Ordner und nennt sie in "MySong.mp3" um.

Schritt  3:
Erstellt die Datei "mp3.rc" im Ordner und kopiert den folgenden Code in die Datei.

Intro RCDATA mySong.mp3 

Schritt 4: 
Kopiert die "brcc32.exe" Datei aus dem ..\Delphi\Borland\bin\.. Ordner in euren Projektordner. 

Schritt 5: 
Nun müsst ihr die  "mp3.rc" Datei per Drag&Drop auf die "brcc32.exe" Datei ziehen, um die "mp3.res" Datei zu erzeugen. Dort befindet sich jetzt euer Song. 

Schritt 6: 
Öffnet euer Projekt und kopiert folgenden Code in die Unit.
{$R mp3.Res}

procedure TForm1.FormCreate(Sender: TObject);
var
 rStream: TResourceStream;
 fStream: TFileStream;
 fname: string;
begin
 fname := ExtractFileDir(Paramstr(0)) + 'Intro.mp3';
 rStream := TResourceStream.Create(hInstance, 'Intro', RT_RCDATA) ;
 try
  fStream := TFileStream.Create(fname, fmCreate) ;
  try
   fStream.CopyFrom(rStream, 0) ;
  finally
   fStream.Free;
  end;
 finally
  rStream.Free;
 end;
 MediaPlayer1.Close;
 MediaPlayer1.FileName := fname;
 MediaPlayer1.Open;
 MediaPlayer1.Play;
end;
Die Größe der EXE-Datei wächst durch den MP3-Stream an, da sich der Stream nun in der EXE befindet. 

Wem das alles ein bisschen zu viel Arbeit ist, kann sich hier : Mega.nz ein Template-Projekt herunterladen und sich das ansehen. 

Der Code ist mit allen Delphi-Versionen kompatibel.

Keine Kommentare:

Kommentar veröffentlichen

Beliebte Posts

Translate