AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Mein kleiner mp3-Player... Updated 13.12.04
Thema durchsuchen
Ansicht
Themen-Optionen

Mein kleiner mp3-Player... Updated 13.12.04

Ein Thema von dizzy · begonnen am 25. Sep 2004 · letzter Beitrag vom 26. Feb 2005
Antwort Antwort
Seite 6 von 11   « Erste     456 78     Letzte »    
Benutzerbild von dizzy
dizzy
Registriert seit: 26. Nov 2003
Ich hab vor einen kleinen handlichen mp3-Player zu schreiben, der recht ansehnlich ist, und sich aber auch nett im Hintergrund halten kann.

Anbei im Anhang mal eine Alpha-Alpha-Version , die bisher nix kann ausser "Öffnen" und sogleich abspielen, und ganz nette Visuals anzeigen. Die Optik ist, wie man am Prog erkennen kann, schon mehr oder minder vorgegeben - wobei ich weitestgehend auf Windows-Standard-Elemente zurückgreifen will . Nicht so ein skin-überladenes "Gewuste" dessen Grafik mehr als Selbstzweck ist.

Jetzt meine Fragen an euch:
1) Läuft das Teil bei euch?
2) Findet ihr's gut?
3) Was wünscht ihr euch von einem kleinen Player?

Zu 3) Ich will keine Monster-mp3-Datenbank wie z.b. iTunes bauen, sondern nur ein kleines Tool . Allerdings spiele ich mit der Idee die Streamingfähigkeiten der BASS.DLL genauer unter die Lupe zu nehmen, um vielleicht (!) eine Streaming-Server Applikation draus zu machen. In wie weit das aber möglich wird weiss ich noch nicht.

Was auf jeden Fall noch klar fehlt: Lautstärke, Vor-/Zurückspringen und das ganze normale Zeug. Aber was würdet ihr noch einbauen?


Edit: 13.12.2004 - Neue Version - und alles wird anders
Soooooo! Nach langer langer Zeit mal wider was neues hier. Ich bin jetzt doch wieder beim simplen Player angelangt, ohne dieses ganze Skin-Zeugs. (War einfach zu viel Aufwand und Kleinkram.)
Statt dessen gibt's jetzt den ganzen Source. Der Player ist nun in eine ganz separate Klasse verpackt, so dass man beliebige GUIs drum bauen kann - wozu ich jeden interessierten einlade. Ein kleines Demo-Projekt ist auch im Archiv (incl. EXE).
Nach wie vor bleibt zum Kompilieren folgende Voraussetzung: Installierte Graphics32-Lib. (www.g32.org)
Es sind auch ein paar Effekte dazu gekommen


gruss,
Fabian
Miniaturansicht angehängter Grafiken
screenie.gif  
Angehängte Dateien
Dateityp: zip fkbassplayer.zip (603,8 KB, 581x aufgerufen)
INSERT INTO HandVonFreundin SELECT * FROM Himmel
 
Benutzerbild von freak4fun
freak4fun

 
Delphi 10.2 Tokyo Starter
 
#51
  Alt 15. Okt 2004, 10:07
hallo,

viel Lob und Anerkennung haste ja schon bekommen
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. Aber ich werds zu Hause mal ausprobieren.

Ich sag mal weiter so ...

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

mfg
freak
  Mit Zitat antworten Zitat
Benjin

 
Delphi 7 Enterprise
 
#52
  Alt 1. Nov 2004, 12:05
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
  Mit Zitat antworten Zitat
100nF
 
#53
  Alt 17. Nov 2004, 16:51
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??
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#54
  Alt 17. Nov 2004, 16:57
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
Fabian K.
  Mit Zitat antworten Zitat
Nils_13
 
#55
  Alt 17. Nov 2004, 17:24
Genial!!!

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 ).
Wie hast du das hinbekommen???
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#56
  Alt 17. Nov 2004, 18:22
Zitat von dizzy:
Handarbeit... Daten von der BASS.DLL abgeholt, zerhackstückelt, gewürgt, zermangelt, wieder zusammen geklebt, verrechnet, in Zeichenroutinen gepackt und kompiliert
Fabian K.
  Mit Zitat antworten Zitat
Benutzerbild von mh166
mh166

 
Delphi 10.2 Tokyo Starter
 
#57
  Alt 17. Nov 2004, 20:44
Zitat von Nils_13:
Nur das rund, was immer hoch und runter geht fehlt noch (wie es heißt hab ich vergessen ).
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
  Mit Zitat antworten Zitat
100nF
 
#58
  Alt 18. Nov 2004, 12:18
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??
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#59
  Alt 18. Nov 2004, 13:17
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 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 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

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...
Fabian K.
  Mit Zitat antworten Zitat
Nils_13
 
#60
  Alt 18. Nov 2004, 13:58
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)]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 11   « Erste     456 78     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 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