Delphi-PRAXiS
Seite 6 von 11   « Erste     456 78     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Mein kleiner mp3-Player... Updated 13.12.04 (https://www.delphipraxis.net/30460-mein-kleiner-mp3-player-updated-13-12-04-a.html)

freak4fun 15. Okt 2004 11:07

Re: Mein kleiner mp3-Player...
 
hallo,

viel Lob und Anerkennung haste ja schon bekommen :mrgreen:
aber beim durchlesen hat sich ergeben das vieles sehr oft gesagt wurde (CPU und Design).
Mir ist aufgefallen das, fast nur, das Design angesprochen wurde :!: weil die anderen "standart" Funktionen einfach erwartet werden. Ich denke das es das ist was dein Programm ausmacht, denn die Player unterscheiden sich ja fast nur noch im Design. Wenn du in diesem Bereich viele (einfache) Möglichkeiten für den User einbaust, wird dem Erfolg des Programms nichts im Wege stehen.

Ich selbst hab es noch nicht ausprobier, weil ich keine Sounddateien auf meinem (Arbeits)Rechner finde. :wall: Aber ich werds zu Hause mal ausprobieren.

Ich sag mal weiter so ... :zwinker:

PS: Ist es Möglich beim öffnen der Songs (Opendialog) die Sounddateien vorzuschreiben die Möglich sind(zB *.mp3, *.wav) :gruebel:

mfg
freak

Benjin 1. Nov 2004 13:05

Re: Mein kleiner mp3-Player...
 
Sieht sehr interessant aus :)
Allerdings belässt es mein Athlon 1800+ beim Aussehen, mehr als den Sound zu hören krieg ich nicht zu sehen. Visuals funktionieren nicht, der PC (CPU und RAM) sind total überlastet. :(
Aber alle Achtung, jede Menge Arbeit bestimmt!

Jan

100nF 17. Nov 2004 17:51

Re: Mein kleiner mp3-Player...
 
halloo

bin gerade auf dieser seite gelandet...
habe den player auch gedownloadet, echt ein cooles design!!

aber wie hast du dieses pegel-teil in der mitte gemacht??

dizzy 17. Nov 2004 17:57

Re: Mein kleiner mp3-Player...
 
Zitat:

Zitat von urbanbruhin
aber wie hast du dieses pegel-teil in der mitte gemacht??

Handarbeit... Daten von der BASS.DLL abgeholt, zerhackstückelt, gewürgt, zermangelt, wieder zusammen geklebt, verrechnet, in Zeichenroutinen gepackt und kompiliert ;)

Nils_13 17. Nov 2004 18:24

Re: Mein kleiner mp3-Player...
 
Genial!!! :thumb:

Ich hab auch nen Player mit haufenweise funktionen:
Nur das rund, was immer hoch und runter geht fehlt noch (wie es heißt hab ich vergessen :gruebel: ).
Wie hast du das hinbekommen???

dizzy 17. Nov 2004 19:22

Re: Mein kleiner mp3-Player...
 
Zitat:

Zitat von dizzy
Handarbeit... Daten von der BASS.DLL abgeholt, zerhackstückelt, gewürgt, zermangelt, wieder zusammen geklebt, verrechnet, in Zeichenroutinen gepackt und kompiliert ;)

:mrgreen:

mh166 17. Nov 2004 21:44

Re: Mein kleiner mp3-Player...
 
Zitat:

Zitat von Nils_13
Nur das rund, was immer hoch und runter geht fehlt noch (wie es heißt hab ich vergessen :gruebel: ).
Wie hast du das hinbekommen???

Meinst du zufällig die Volumebars? Ich könnte mir vorstellen, dass die noch zu den leichtesten Übungen gehören...

Aber das Teil ist echt Hammergeil! Schade nur, dass das Programm selbst ohne abzuspielen 73% (!!!) meiner CPU in anspruch nimmt... Mit Lied isses auch in etwa um den WErt herum. Das musst du noch verbessern, aber ansonsten isses einfahc nur mal geil!

Wann gibts eigentlich ne neue Version zum Download?

mfg, mh166

100nF 18. Nov 2004 13:18

Re: Mein kleiner mp3-Player...
 
Zitat:

Handarbeit... Daten von der BASS.DLL abgeholt, zerhackstückelt, gewürgt, zermangelt, wieder zusammen geklebt, verrechnet, in Zeichenroutinen gepackt und kompiliert
(rundes teil in der mitte)

aber kann man auch mit der bass.dll arbeiten, wenn man zum abspielen von dateien den Tmediaplayer nimmt??

wenn ja: wie kann man so ein colles dings da in der mitte programmieren?? (ein code wäre nicht schlecht, falls du ihn hergeben willst)

oder einfach ein ganz normaler Tstatusbar, der den pegel anzeigt??

dizzy 18. Nov 2004 14:17

Re: Mein kleiner mp3-Player...
 
Zitat:

Zitat von urbanbruhin
aber kann man auch mit der bass.dll arbeiten, wenn man zum abspielen von dateien den Tmediaplayer nimmt??

Nein. Es könnte u.U. einen Umweg geben, indem man mit der bass.dll das vom Mediaplayer wiedergegebene aufnehmen lässt, und sich den Pegel davon abholt, aber das ist ziemlicher Schwachfug :).
Der Mediaplayer ist imho nicht wirklich der Weisheit letzter Schluss...

Zitat:

Zitat von urbanbruhin
wenn ja: wie kann man so ein colles dings da in der mitte programmieren?? (ein code wäre nicht schlecht, falls du ihn hergeben willst)

Willst du wirklich!?
Na gut....
Delphi-Quellcode:
//------------------------------------------------------------------------------
//------- The Volume-Bars ------------------------------------------------------
// SECTION BEGIN ---------------------------------------------------------------
{ How does it work?
  At first the volumes is "smoothed". This is done by checking whether the new
  volume is lower or greater than the former one.
  If it is lower, then not the actual new vlomue is taken, but the former one
  slightly decreased.
  If it is greater, the value is just taken "as is".
  The resulting volume-values are taken to calculate an angle between 0 and
  (3/4)*pi.
  (Pi would make a 180°-turn, and i didn't want the bars to clap together at
  max-volume -> thus i took (3/4)*pi.)
  The channel-volume is also the base for calculating the colors. Low volume
  produces green color, and the higher the volume gets, the more the color turns
  into red.
  Then when drawing the bars, i use a loop that draws the lines for all volumes
  that are lower or equal to the actual value, because just drawing the line
  for the actual value wouldn't result in "bars" but simple two dancing lines...
  The constant numbers in the drawing-routines are depending on where the bars
  should appear, and how large the inner and outer ellipse should be.
  (They are constant here because it is faster.)                              }
procedure DrawVisVolume(var bmp: TBitmap32; const Source: TBassplayer);
var
  lv, rv   : Double;
  m        : Double;
  c        : Integer;
  sinM, cosM: Extended;
const
  step: Double = 0.02;
begin
  lv := Source.LeftPeak;
  rv := Source.RightPeak;
  if lv > 128 then lv := 0;
  if rv > 128 then rv := 0;
  lv := 0.018407769*lv; // := 0.005859375*lv*pi; // := (lv / 128)*(pi/4)*3; <--- is same
  rv := 0.018407769*rv; // := 0.005859375*rv*pi; // := (rv / 128)*(pi/4)*3; <--- is same

  if lv < lVol then
    lVol := lVol - 0.125
  else
    lVol := lv;

  if rv < rVol then
    rVol := rVol - 0.125
  else
    rVol := rv;

  m := 0;
  repeat
    c := trunc(108.2253613*m); // := trunc(340*m / pi); <--- // := trunc((m * 255) / ((3/4)*pi)); <--- is same
    sincos(m, sinM, cosM);
    bmp.LineF(200+120*-sinM,
              200+150* cosM,
              200+180*-sinM,
              200+180* cosM,
              Color32(c,255-c,32));
    m := m + step;
  until m > lVol;

  m := step;
  repeat
    c := trunc(108.2253613*m); // := trunc(340*m / pi); <--- // := trunc((m * 255) / ((3/4)*pi)); <--- is same
    sincos(m, sinM, cosM);
    bmp.LineF(200-120*-sinM,
              200+150* cosM,
              200-180*-sinM,
              200+180* cosM,
              Color32(c,255-c,32));
    m := m + step;
  until m > rVol;
end;
Packs die nicht standardmäßig bei Delphi dabei sind: Graphics32-Lib; bass.dll + modifizierte Version der Bassplayer.pas vom DP-User Gandalfus (TBassplayer).
Die komischen Kommentare im Code sind für mich zur Erinnerung wie die konstanten Werte im eigentlichen Code ursprünglich entstanden sind.
Diese Prozedur zeichnet die Volume-Bars auf ein beliebiges TBitmap32 das ausreichend groß ist. Da das ganze allerdings doch schon recht speziell ist, weiss ich nicht, ob dir das so wirklich weiter hilft...

Zitat:

Zitat von urbanbruhin
oder einfach ein ganz normaler Tstatusbar, der den pegel anzeigt??

Wäre zumindest erstmal die einfachere Alternative. Um ehrlich zu sein hab ich das auch zunächst so gemacht. Einfach rumspielen und haufenweise Fehler kassieren, und wenn es irgendwann gut aussieht, dann so lassen. So mach ich das immer :D

Gruss,
Fabian

\\edit: btw.: Die gesamte Unit für die Visuals ist genau 599 Zeilen, die die dafür sorgt dass alles zur rechten Zeit an rechter Stelle gezeichnet wird macht nochmal ~300. Das sind mal sopntan 900 Zeilen Code nur für das Visual, da ist noch kein Lied mit abgespielt, geschweige denn eine GUI gebaut und gesteuert...

Nils_13 18. Nov 2004 14:58

Re: Mein kleiner mp3-Player...
 
Hi,

gibt es nicht die möglichkeit eine Komponente von den LMD-Tools zu verwenden, die die Position bis 100 hat?
Dann muss man nur in einem edit oder label die Soundlautstärke 0-100 angeben und jede ml-sekunde den Text zur Position zu übertragen?[edit label geht natürlich nicht(siehe var)]


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Seite 6 von 11   « Erste     456 78     Letzte »    

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 by Thomas Breitkreuz