Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Liedlänge in MS mit Bass.dll ermitteln (https://www.delphipraxis.net/80879-liedlaenge-ms-mit-bass-dll-ermitteln.html)

Corpsman 16. Nov 2006 19:47


Liedlänge in MS mit Bass.dll ermitteln
 
Hallo alle Miteinand.

Ichversuche gerade Töne in mein Balanced Spiel ein zu bauen.

nun habe ich mich für BAss.dll entschieden weil ich eigentlich der Meinung war das die net schlecht ist.

Aber !!!

Ich schaffe es einfach nicht die Länge eines Media Files in Milli sekunden aus zu lesen.

Mein Problem ist das ich das neu Abspielen sperren mus so lange ein Aktueller Track läuft.

Ich habe es schon mit der

Delphi-Quellcode:
  EndSync[BASS_ChannelSetSync(Sounds[0], BASS_SYNC_END, 0, @EndSyncProc, 0);
Variante Probiert das geht nicht.

auch ein Messen via

Delphi-Quellcode:
 
 If Achannel <> 0 Then Begin
    i1 := BASS_ChannelGetPosition(Achannel);
    i2 := BASS_ChannelGetLength(achannel);
    If i1 < i2 Then exit;
  End;
ging nicht.
Ich weis nicht wieso

Meine Wave dateien sind in der Regel zwischen 1000 und 1300 MS lang. Also nicht so dermasen viel. Ich könnte natürlich nun Hergehen und mit einem Programm XY die Exakte Länge bestimmen und diese dann im Source Hardcoden. Aber wenn ich das machen müste wär das echt das letzte.

Es mus doch auch eine Vernünftige Variante geben die Länge des Musikstückes zu bestimmen ?

Namenloser 16. Nov 2006 20:00

Re: Liedlänge in MS mit Bass.dll ermitteln
 
Wozu brauchst du denn die Länge? Falls sich der Sound einfach nur wiederholen soll, füge das in die Hauptschleife des Spiels ein.
Delphi-Quellcode:
  BASS_ChannelPlay(Soundhandle,false);
Hat bei mir funktioniert...

edit: achso, jetzt hab ich das kapiert. Nach dem ersten Lied soll ein anderes abgespielt werden. Hmm, da kann ich auch nicht weiterhelfen...

Corpsman 16. Nov 2006 20:30

Re: Liedlänge in MS mit Bass.dll ermitteln
 
Das Problem ist das ich 9 Sounds habe. Je nach MAterial und bewegung werden unterschiedliche abgespielt.

z.b.

Solange die Kugel Rollt und MAterial1 hat spiele ich sound A ab.
Die Kugel bleibt stehen kein Sound.
Die Kugel Knallt wo gegen Sound B

Andere MAterialien andere Sounds ...

Das Problem an diesem Endlos abspielen ist das Bass.dll sich merkt wie oft das noch gemacht werden mus und die Lieder nicht Abbricht wenn die Kugel steht.

Also darf ich wirklich immer nur dann ein Lied starten wenn die Kugel auch Rollt.

omata 16. Nov 2006 20:35

Re: Liedlänge in MS mit Bass.dll ermitteln
 
Hallo Corpsman,

schau doch mal mein Beispiel an.

Damit sollte das eigentlich gehen.

Gruss
Thorsten

Corpsman 16. Nov 2006 20:59

Re: Liedlänge in MS mit Bass.dll ermitteln
 
cool THX,

nu spielt er ein Lied wenigstens Mehrfach ab.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 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