Autor Beitrag
IhopeonlyReader
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Di 12.06.12 18:42 
guten Tag,
die Music.res enthält folgenden Inhalt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
1 WAVE "C:\Users\Benutzername\Desktop\Spiel\nötigeSounds\Win.wav"
2 WAVE "C:\Users\Benutzername\Desktop\Spiel\nötigeSounds\Loose.wav"
3 WAVE "C:\Users\Benutzername\Desktop\Spiel\nötigeSounds\Teleporter.wav"
4 MIDI "C:\Users\Benutzername\Desktop\Spiel\nötigeSounds\Backgroundmusic.mid"

ich habe sie dann compiliert ( mit Brcc32.exe) und sie eingebunden.. soweit kein problem
die "Kurztöne" (also 1,2 und 3) spiele ich mit folgendem Code ab:
ausblenden Delphi-Quelltext
1:
2:
3:
PlaySound(PCHAR(1),HInstance, snd_ASync or snd_Memory or snd_Resource); //Win
PlaySound(PCHAR(2),HInstance, snd_ASync or snd_Memory or snd_Resource); //Loose
PlaySound(PCHAR(3),HInstance, snd_ASync or snd_Memory or snd_Resource); //Teleporter

Soweit alles kein problem :)
Aber wie kann ich die 3 Minuten MIDI Sequenz wiedergeben? Playsound funktioniert nicht parallel (mehrmals), dann bricht die jetzige ab, also wenn er ein LV schafft hört die Hintergrundmusik auf, damit fällt PlaySound aus.
Bis jetzz hatte ich die Midi-Sequenz immer beigelegt und sie mit einem TMediaplayer abgespielt. Aber das funktioniert jetzt nicht mehr :(

Möglichkeit (die ich aber vermeiden möchte):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
 Datei: TResourceStream;
 MedPlayer: TMediaPlayer;

Datei := TResourceStream.Create(HInstance,'4' , 'MIDI');
  try
     Datei.SaveToFile(Pfad+'\Backroundmusic.mid'); //Pfad wäre dann der Ordner zu Appdata
  finally
    Datei.Free;
  end;
MedPlayer := TMediaPlayer.create(Form1);
try
MedPlayer.Filename := Pfad+'\Backroundmusic.mid';
 finally
 Medplayer.play;


ich denke ihr versteht, dass ich die Hintergrundmusik direkt in der EXE verwenden möchte und sie nciht vorher speichern möchte...

freu mich auf eure Antworten :)

EDIT: Ich möchte nicht den Mediaplayer vermeiden, sondern das Speichern der Datei um sie mit dem TMediaplayer zu verwenden.. kann ich eine variable Datei: MusicFile anlegen und diese dann mit Datei := TResourceStream.Create(HInstance,'4' , 'MIDI') aufrufen und dann mit MedPlayer.File := Datei arbeiten? natürlich ist das jetzt sehr grob gedacht, aber von der Idee her mein ich natürlich

Moderiert von user profile iconNarses: Beiträge zusammengefasst

MCISendString(PChar('play ' + Pfad+'Backgroundmusik.Mid'), nil, 0, 0);
klappt auch leider nicht... :(
mal ne frage: warum ist folgender code nicht möglich:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
Datei: TResourceStream;


Datei := TResourceStream.Create(HInstance,'4' , 'MIDI');
MCISendString(PChar('play ' + Datei), nil00);

ich gehe davon aus, das der Fehler darin liegt, das ein TResourceStream nicht weitergegeben werden kann an die Soundkarte, aber wie ist es denn?

Und wie schaff ich es einen TMediaplayer eine Datei abzuspielen? Also dass ich keinen Pfad sondenr eine Datei angebe...
Beispiel:
Bis jetzt: Mediaplayer.filename := Pfad+Musikdatei
Gesucht: Mediaplayer.????? := Datei;

Was muss hinter den . für die Fragezeichen ?? sowas wie File gibt es ja leider nicht.
Was muss die Variable Datei für ein Typ sein? ich denke mal sowas wie Mediafile, dass auch nicht klappt :D


(das sind nur Überlegungen von mir, wie es ungefähr sein müsste... aber ich weiß es einfach nicht genau :( )


Moderiert von user profile iconNarses: Topic aus Dateizugriff verschoben am Di 12.06.2012 um 23:39

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mi 13.06.12 17:12 
Die Frage nochmal kurz:
Wie kann man eine Datei (die per *.res eingebunden wurde) mit einem Mediaplayer abspielen?

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Sa 16.06.12 11:54 
-push-
PS: Ist das Erlaubt?

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 16.06.12 12:43 
[quote:b9163613b8=\"user profile iconIhopeonlyReader\"(664496)]-push-
PS: Ist das Erlaubt?[/quote:b9163613b8]Da mehr als 24 Stunden vergangen sind, ja. ;-)

Ich denke das beste ist dafür die Bass DLL, das ist ohnehin mindestens tausendmal besser als der TMediaPlayer:
www.un4seen.com/bass.html
Damit kannst du auch Streams abspielen und mit TResourceStream hast du ja bereits die Daten in einem Stream.
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Sa 16.06.12 16:07 
Danke :) Aber bei dem einbinden folgendes Problem: mit der Unit: "Dynamic_WASAPI"
Quellcode der Unit:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
{
written by Wishmaster
}



unit Dynamic_WASAPI;

interface

uses Windows, Dynamic_Bass;


const
  // Additional error codes returned by BASS_ErrorGetCode
  BASS_ERROR_BUSY        = 46;   // the device is busy
  BASS_ERROR_WASAPI      = 5000// no WASAPI

  // BASS_WASAPI_DEVICEINFO "type"
  BASS_WASAPI_TYPE_NETWORKDEVICE   = 0;
  BASS_WASAPI_TYPE_SPEAKERS        = 1;
  BASS_WASAPI_TYPE_LINELEVEL       = 2;
  BASS_WASAPI_TYPE_HEADPHONES      = 3;
  BASS_WASAPI_TYPE_MICROPHONE      = 4;
  BASS_WASAPI_TYPE_HEADSET         = 5;
  BASS_WASAPI_TYPE_HANDSET         = 6;
  BASS_WASAPI_TYPE_DIGITAL         = 7;
  BASS_WASAPI_TYPE_SPDIF           = 8;
  BASS_WASAPI_TYPE_HDMI            = 9;
  BASS_WASAPI_TYPE_UNKNOWN         = 10;

  // BASS_WASAPI_DEVICEINFO flags
  BASS_DEVICE_ENABLED              = 1;
  BASS_DEVICE_DEFAULT              = 2;
  BASS_DEVICE_INIT                 = 4;
  BASS_DEVICE_LOOPBACK             = 8;
  BASS_DEVICE_INPUT                = 16;

  // BASS_WASAPI_Init flags
  BASS_WASAPI_EXCLUSIVE            = 1;
  BASS_WASAPI_AUTOFORMAT           = 2;
  BASS_WASAPI_BUFFER               = 4;

  // BASS_WASAPI_INFO "format"
  BASS_WASAPI_FORMAT_FLOAT         = 0;
  BASS_WASAPI_FORMAT_8BIT          = 1;
  BASS_WASAPI_FORMAT_16BIT         = 2;
  BASS_WASAPI_FORMAT_24BIT         = 3;
  BASS_WASAPI_FORMAT_32BIT         = 4;


type
  // Device info structure
  BASS_WASAPI_DEVICEINFO = record
    name: PAnsiChar;
    id: PAnsiChar;
    &type: DWORD;
    flags: DWORD;
    minperiod: Single;
    defperiod: Single;
    mixfreq: DWORD;
    mixchans: DWORD;
  end;

  BASS_WASAPI_INFO = record
  initflags: DWORD;
  freq: DWORD;
  chans: DWORD;
  format: DWORD;
  buflen: DWORD;
  volmax: Single;
  volmin: Single;
  volstep: Single;
  end;

  WASAPIPROC = function(buffer:Pointer; length:DWORD; user:Pointer): DWORD; stdcall;
  {
    WASAPI callback function.
    buffer : Buffer containing the sample data
    length : Number of bytes
    user   : The 'user' parameter given when calling BASS_WASAPI_Init
    RETURN : The number of bytes written (ignored with input devices)
  }



var
 BASS_WASAPI_GetVersion:function(): DWORD; stdcall;
 BASS_WASAPI_GetDeviceInfo:function(device:DWORD; var info:BASS_WASAPI_DEVICEINFO): BOOL; stdcall;
 BASS_WASAPI_GetDeviceLevel:function(device:DWORD; chan:Integer): single; stdcall;
 BASS_WASAPI_SetDevice:function(device:DWORD): BOOL; stdcall;
 BASS_WASAPI_GetDevice:function(): DWORD; stdcall;
 BASS_WASAPI_CheckFormat:function(device:Integer; freq,chans,flags:DWORD): DWORD; stdcall;
 BASS_WASAPI_Init:function(device:Integer; freq,chans,flags:DWORD; buffer,period:Single; proc:WASAPIPROC; user:Pointer): BOOL; stdcall;
 BASS_WASAPI_Free:function(): BOOL; stdcall;
 BASS_WASAPI_GetInfo:function(var info:BASS_WASAPI_INFO): BOOL; stdcall;
 BASS_WASAPI_GetCPU:function(): float; stdcall;
 BASS_WASAPI_Lock:function(lock:BOOL): BOOL; stdcall;
 BASS_WASAPI_Start:function(): BOOL; stdcall;
 BASS_WASAPI_Stop:function(reset:BOOL): BOOL; stdcall;
 BASS_WASAPI_IsStarted:function(): BOOL; stdcall;
 BASS_WASAPI_SetVolume:function(linear:BOOL; volume:single): BOOL; stdcall;
 BASS_WASAPI_GetVolume:function(linear:BOOL): single; stdcall;
 BASS_WASAPI_SetMute:function(mute:BOOL): BOOL; stdcall;
 BASS_WASAPI_GetMute:function(): BOOL; stdcall;
 BASS_WASAPI_PutData:function(buffer: Pointer; length: DWORD): DWORD; stdcall;
 BASS_WASAPI_GetData:function(buffer: Pointer; length: DWORD): DWORD; stdcall;
 BASS_WASAPI_GetLevel:function(): DWORD; stdcall;


var
   WASAPI_Handle : Thandle = 0;

   Function Load_WASAPIDLL(const dllfilename : string) : boolean;
   procedure Unload_WASAPIDLL;


implementation


Function Load_WASAPIDLL(const dllfilename : string) : boolean;
var
   oldmode : integer;
begin
 if WASAPI_Handle <> 0 then // is it already there ?
  Result:= true
 else
   begin {go & load the dll}
    oldmode := SetErrorMode($8001);
   {$IFDEF UNICODE}
     WASAPI_Handle:= LoadLibraryW(PWideChar(dllfilename));
   {$ELSE}
     BASSCD_Handle:= LoadLibrary(PChar(dllfilename));
   {$ENDIF}
     SetErrorMode(oldmode);
    if WASAPI_Handle <> 0 then
     begin
      @BASS_WASAPI_GetVersion:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetVersion'));
      @BASS_WASAPI_GetDeviceInfo:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetDeviceInfo'));
      @BASS_WASAPI_GetDeviceLevel:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetDeviceLevel'));
      @BASS_WASAPI_SetDevice:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_SetDevice'));
      @BASS_WASAPI_GetDevice:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetDevice'));
      @BASS_WASAPI_CheckFormat:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_CheckFormat'));
      @BASS_WASAPI_Init:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_Init'));
      @BASS_WASAPI_Free:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_Free'));
      @BASS_WASAPI_GetInfo:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetInfo'));
      @BASS_WASAPI_GetCPU:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetCPU'));
      @BASS_WASAPI_Lock:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_Lock'));
      @BASS_WASAPI_Start:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_Start'));
      @BASS_WASAPI_Stop:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_Stop'));
      @BASS_WASAPI_IsStarted:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_IsStarted'));
      @BASS_WASAPI_SetVolume:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_SetVolume'));
      @BASS_WASAPI_GetVolume:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetVolume'));
      @BASS_WASAPI_SetMute:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_SetMute'));
      @BASS_WASAPI_GetMute:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetMute'));
      @BASS_WASAPI_PutData:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_PutData'));
      @BASS_WASAPI_GetData:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetData'));
      @BASS_WASAPI_GetLevel:= GetProcAddress(WASAPI_Handle, Pchar('BASS_WASAPI_GetLevel'));


  if (@BASS_WASAPI_GetVersion = nilor
     (@BASS_WASAPI_GetDeviceInfo = nilor
     (@BASS_WASAPI_GetDeviceLevel = nilor
     (@BASS_WASAPI_SetDevice = nilor
     (@BASS_WASAPI_GetDevice = nilor
     (@BASS_WASAPI_CheckFormat = nilor
     (@BASS_WASAPI_Init = nilor
     (@BASS_WASAPI_Free = nilor
     (@BASS_WASAPI_GetInfo = nilor
     (@BASS_WASAPI_GetCPU = nilor
     (@BASS_WASAPI_Lock = nilor
     (@BASS_WASAPI_Start = nilor
     (@BASS_WASAPI_Stop = nilor
     (@BASS_WASAPI_IsStarted = nilor
     (@BASS_WASAPI_SetVolume = nilor
     (@BASS_WASAPI_GetVolume = nilor
     (@BASS_WASAPI_SetMute = nilor
     (@BASS_WASAPI_GetMute = nilor
     (@BASS_WASAPI_PutData = nilor
     (@BASS_WASAPI_GetData = nilor
     (@BASS_WASAPI_GetLevel = nilthen
     begin
      FreeLibrary(WASAPI_Handle);
      WASAPI_Handle := 0;
     end;
    end;
   Result:= (WASAPI_Handle <> 0);
 end;
end;


procedure Unload_WASAPIDLL;
begin
 if WASAPI_Handle <> 0 then
  FreeLibrary(WASAPI_Handle);
  WASAPI_Handle := 0;
end;

end.


Fehlermeldung:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
[Fehler] Dynamic_WASAPI.pas(56): Ungültiges Zeichen in Eingabedatei: '&' ($26)
[Fehler] Dynamic_WASAPI.pas(56): '=' erwartet, aber ';' gefunden
[Fehler] Dynamic_WASAPI.pas(57): '=' erwartet, aber ':' gefunden
[Fehler] Dynamic_WASAPI.pas(58): '=' erwartet, aber ':' gefunden
[Fehler] Dynamic_WASAPI.pas(59): '=' erwartet, aber ':' gefunden
[Fehler] Dynamic_WASAPI.pas(60): '=' erwartet, aber ':' gefunden
[Fehler] Dynamic_WASAPI.pas(61): '=' erwartet, aber ':' gefunden
[Fehler] Dynamic_WASAPI.pas(62): 'IMPLEMENTATION' erwartet, aber ';' gefunden
[Fehler] Dynamic_WASAPI.pas(73): '.' erwartet, aber ';' gefunden
[Fehler] Dynamic_WASAPI.pas(75): Bezeichner erwartet, aber '(' gefunden
[Fehler] Dynamic_WASAPI.pas(75): Unbekannte Anweisung: 'length'
[Fehler] Dynamic_WASAPI.pas(92): Undefinierter Bezeichner: 'WASAPIPROC'
[Fehler] Dynamic_WASAPI.pas(94): Undefinierter Bezeichner: 'BASS_WASAPI_INFO'
[Fehler] Dynamic_WASAPI.pas(110): Lokale Variablen können nicht initialisiert werden
[Fehler] Dynamic_WASAPI.pas(116): ';' erwartet, aber 'IMPLEMENTATION' gefunden
[Fataler Fehler] Project1.dpr(6): Verwendete Unit 'Dynamic_WASAPI.pas' kann nicht compiliert werden


aber z.B. der Fehler
[Fehler] Dynamic_WASAPI.pas(75): Unbekannte Anweisung: 'length'
wundert mich sehr... wurde vergessen bestimme units einzubinden?

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 16.06.12 21:59 
Nimm einfach das & in Zeile 56 weg, der Rest sind Folgefehler, wahrscheinlich geht es dann schon. Aber wozu brauchst du die Windows Audio Session API? Eigentlich sollte doch Dynamic_BASS erst einmal reichen.
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Sa 16.06.12 22:32 
wie aufrufen und so? *hilfe nötig^^

da der Nutzer es wie ein TMediaplayer nutzen sollte (also es sollte einstellbar, play und stop/break) sollte ja eine sichtbare komponente vorhanden sein oder? oder muss ich das mit buttons erreichen?

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 16.06.12 22:37 
Ja. Die bass.dll ist keine (visuelle) Komponente, sondern "nur" eine externe Bibliothek, die du mitliefern musst.

Die GUI dazu muss man selber schreiben, wenn man eine benötigt.

_________________
We are, we were and will not be.
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 18.06.12 13:31 
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Die GUI dazu muss man selber schreiben, wenn man eine benötigt.

Mhh... ehrlich gesagt habe ich davon ca 0 Ahnung...
Ich würde gerne einen Stream abspielen, wie ist das denn damit möglich?


Wenn das wirklich nur eine Datenbank ist, dann würde ich gerne wissen WOZU das eine Datenbank ist, wenn man den GUI doch selbstschreiben muss

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 18.06.12 13:48 
Das ist keine Datenbank, sondern eine Bibliothek, das ist wohl doch etwas anderes.

Wo ist denn das Problem, ein paar Buttons auf die Form zu klatschen und im OnClick die entsprechenden Routinen der bass.dll aufzurufen? Klar wäre es für dich schöner, wenn bei der bass.dll direkt dein fertiges Programm dabei wäre, aber in vielen Fällen wird ja (fast) gar keine GUI für das Abspielen benötigt (z.B. bei Hintergrundmusik oder Effekten bei Spielen).

Wie das Abspielen eines RessourceStreams damit genau geht, weiß ich auch nicht. Ich sehe aber auch nicht ganz den Sinn dahinter, alles in die exe zu packen. Zumal du mit der bass.dll jetzt ja sowieso mindestens eine weitere Datei mitliefern musst. ;-)

Nebenbei: Wenn das wirklich nur ein Haus ist, dann würde ich gerne wissen WOZU das ein Haus ist, wenn man sich den Bodenbelag und die Tapete selbst aussuchen muss. :zwinker:

_________________
We are, we were and will not be.
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 18.06.12 16:45 
ok danke :)
ich wollte einfach vermeiden, dass wenn man meine EXE rumgibt, dass man dann alle datein erst komprimieren muss etc... so ist es nur eien einfache EXE (trotzt musik dateien.. weniger als 1MB groß)

ich verstehe nun was du meinst :D und wenn ich die bibliothek mitliefern muss, dann benutz ich doch lieber den alten Tmediaplayer (mit dem ich zufrieden bin) und lade die Datei im App-Data ordner und lass sie dann abspielen, und damit ich den PC nicht zumüll lösche ich die Datei beim schließen (und spielstandlöschenbutton) wieder :)


Aber eins ist dennnoch blöd bei dem TMediaplayer: Wenn ich die Dauerschleife bei mir drin habe, dann wird die datei nach ende wieder abgespielt ( mediaplayer.play) dabei lagt es ca 0,2 sek.. ist das verhinderbar?

Also jedesmal wenn ich auf play klicke lagt es :( woran leigt das (an der schleife liegt es nicht, da es auch lagt wenn ich manuell auf den playbutton drücke)

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 18.06.12 17:22 
Solche kleinen Probleme wirst du nicht verhindern können, wenn du bei TMediaPlayer bleiben willst. :nixweiss:

Es ist nun einmal Standard, dass eine Anwendung nicht nur aus einer Exe besteht. Wenn das bei dir anders sein soll, dann musst du eben auch entsprechende Einschränkungen in Kauf nehmen...
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 18.06.12 17:26 
Wobei ich 0.2 sec schon für arg viel bei kurzen Files halte, selbst für den TMediaPlayer. :gruebel:

Sicher, dass das "laggen" nicht daran liegt, dass die Datei am Anfang oder Ende etwas Stille hat? Oder hakt das Programm wirklich komplett?

_________________
We are, we were and will not be.
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 18.06.12 18:08 
Da ich mit einem timer meine Spielfiguren zeichne... und diese dann für kurze zeit Stehen bleiben lagt das ganze programm :D

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!