Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi MIDI-Dateien als Ressourcen einbinden & abspielen (https://www.delphipraxis.net/52924-midi-dateien-als-ressourcen-einbinden-abspielen.html)

3_of_8 8. Sep 2005 20:44

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
Ja, Ja, Ja, Nein, Ja.

Flocke 8. Sep 2005 21:14

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
Das Nein bedeutet also, dass du in der MediaPlayer bei Filename eine existierende Midi-Datei ausgewählt hast, z.B. "C:\WINDOWS\Media\town.mid", danach das Programm gestartet und dann auf Play gedrückt hast (oder programmtechnisch gemacht) ... und dann hörst du nichts.

Also ich habe gerade mal eine kleine Testanwendung gemacht, da klappts auf Anhieb.

3_of_8 8. Sep 2005 21:21

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
Hmm... In meiner Testanwendung klappt es auch auf Anhieb... :gruebel:

3_of_8 8. Sep 2005 21:31

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
Jetzt funzt es. Frag mich nicht warum. Danke noch mal.

3_of_8 9. Sep 2005 17:35

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
Kann ich die MIDI wirklich nicht direkt aus der Ressource abspielen?

MarcoWarm 9. Sep 2005 17:48

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
das geht leider nicht.... obwohl... du könntest schauen, ob die Mediaplayerkomponente ein LoadFromStream hat.... falls ja, dann kannst du den Inhalt der Ressource in nen Memorystream schreiben und abspielen (hab leider kein Delphi hier um das zu prüfen)

PierreB 9. Sep 2005 17:50

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
Wenn ich mich recht erinnere, kann man mittels Bass.dll auch direkt aus Resourcenabspielen, bin mir aber nicht sicher.

Flocke 9. Sep 2005 18:10

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
Also die TMediaPlayer-Komponente arbeitet über das MCI-Interface und braucht daher IMHO eine Datei. Was ist das Problem dabei? Einfach in's temporäre Verzeichnis entpacken und beim Beenden der Anwendung wieder löschen (du kannst ja immer denselben Dateinamen benutzen).

emsländer 30. Nov 2005 10:06

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
Auch ich experimentiere mit dem Resourcenkram rum.

WAV klappt einwandfrei über den playsound
MP3 als WAV getarnt ebenso

nun wollte ich ein .midi ebenfalls einbinden und habe mit dazu, wie hier in der DP beschrieben die bassdll installiert und versuche die zu nutzen. Da bekomme ich nur eine Fehlermeldung(Resource EURO wurde nicht gefunden). Kann mir mal jemand den korrekten Aufruf mitteilen?

BassdllPlayer1.LoadFromResourceName('EURO' ,RC_MUSIC)

meine .rc hier anbei:


MUSIK Wave "a.wav" -klappt
SPUEL Wave "b.wav" -klappt
HYMNE Wave "c.wav" -klappt
EURO MIDI "4.mid" -klappt nicht



Danke und Gruss

EL

emsländer 30. Nov 2005 11:20

Re: MIDI-Dateien als Ressourcen einbinden & abspielen
 
So - habs jetzt rausgefunden und möchte €uch diese recht einfache Variante nicht vorenthalten.


irgendwo im projekt global definieren:

Delphi-Quellcode:
const filename :string = '~tmp.mid';


dann eine Funktion, die das abspielen startet:

Delphi-Quellcode:
function startmidi(_resourcename : string) : boolean
var  _sstream: TCustomMemoryStream;
begin
  try
    _sstream := TResourceStream.Create(hInstance, _resourcename, 'MIDIFILE');
    _sstream.SavetoFile(filename);
  finally
    _sstream.Free;
  end;
  MCISendString(PChar('play '+ filename), nil, 0, 0);
  result := true;
end;
und hier die Funktion für das Beenden
Delphi-Quellcode:
function endmidi : boolean
begin
  MCISendString(PChar('stop ' + Filename), nil, 0, 0);
  MCISendString('close sound', nil, 0, 0);
  if fileexists(filename) then deletefile(filename);
  result := true;
end;
Nachtrag: Die .RC - Datei (heisst bei mir: mucke.rc)

Delphi-Quellcode:
EURO midifile "4.mid"
Gruss

EL


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.
Seite 2 von 2     12   

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