Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   AudioDB 5.3.2.8 - Internet-Stream & Audio-Player (https://www.delphipraxis.net/90379-audiodb-5-3-2-8-internet-stream-audio-player.html)

Dunkel 9. Aug 2007 15:20

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
So, wieder mal was neues:

[+] Playlist-Editor
[+] Unicode-fähig
[+] dieses und jenes :wink:
[fix] diverse Bugs behoben

Dunkel 17. Aug 2007 22:51

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
Minor Update.

[fix] Unicode-Dateien können jetzt geöffnet werden
[+] something more

dominikkv 24. Aug 2007 15:48

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
hey, cooles programm :zwinker:
nur wenn ich nen radiostream höre, dann eine audiodatei öffnen will tuts nicht...^^

welche komponente hast du für die trackbar benutzt?

deine shoutcast komponente hab ich schon in meinem player eingebaut :stupid:
danke!

Dunkel 24. Aug 2007 16:47

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
Hallo Dominik!

Zitat:

Zitat von dominikkv
hey, cooles programm :zwinker:

Danke!

Zitat:

Zitat von dominikkv
nur wenn ich nen radiostream höre, dann eine audiodatei öffnen will tuts nicht...^^

Wie versuchst Du die Audiodatei zu öffnen? Playlist, Drag&Drop, Open-Button?

Zitat:

Zitat von dominikkv
welche komponente hast du für die trackbar benutzt?

TImage.Canvas

Zitat:

Zitat von dominikkv
deine shoutcast komponente hab ich schon in meinem player eingebaut :stupid:
danke!

Schön! Ich hoffe mal, dass weitere Internetz-Shoutcast-fähige Player auf den Zug aufspringen. Mir geht es immer gegen den Strich auf Shoutcast.com zu gehen um nur mal ein wenig Internetz-Radio zu hören.
(...und ich freue mich auf eine kurze Erwähnung in Deinen Programm... :wink: )

dominikkv 24. Aug 2007 18:03

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
Zitat:

Zitat von Dunkel
Wie versuchst Du die Audiodatei zu öffnen? Playlist, Drag&Drop, Open-Button?

Rechtsklick auf visualisierung -> Player -> Öffnen -> Audiodatei öffnen.
Dann wähle ich das Lied aus, das fenster schließt sich wieder und nix passiert -.-

Zitat:

Zitat von Dunkel
TImage.Canvas

ok...das ist ein bisschen zu hoch für mich^^

Zitat:

Zitat von Dunkel
(...und ich freue mich auf eine kurze Erwähnung in Deinen Programm... :wink: )

na klar... in den Abouts :cheers:

Dunkel 24. Aug 2007 18:16

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
Zitat:

Zitat von dominikkv
Zitat:

Zitat von Dunkel
Wie versuchst Du die Audiodatei zu öffnen? Playlist, Drag&Drop, Open-Button?

Rechtsklick auf visualisierung -> Player -> Öffnen -> Audiodatei öffnen.
Dann wähle ich das Lied aus, das fenster schließt sich wieder und nix passiert -.-

Hmm... kann ich bei mir nicht nachvollziehen. Öffne mal via Hauptmenü-Optionen-System-Show/Hide Console die Konsole. Wird dort beim Versuch die Audiodatei, wie Du es beschrieben hast, zu öffnen ein Fehler angezeigt?

Zitat:

Zitat von dominikkv
Zitat:

Zitat von Dunkel
TImage.Canvas

ok...das ist ein bisschen zu hoch für mich^^

Quatsch! So schwer ist das nicht! Mit ein wenig experimentieren kriegt man das recht gut hin.

Zitat:

Zitat von dominikkv
Zitat:

Zitat von Dunkel
(...und ich freue mich auf eine kurze Erwähnung in Deinen Programm... :wink: )

na klar... in den Abouts :cheers:

Danke! :cheers:


Grüße
Michael

dominikkv 24. Aug 2007 18:36

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
Zitat:

Zitat von Dunkel
Zitat:

Zitat von dominikkv
Zitat:

Zitat von Dunkel
Wie versuchst Du die Audiodatei zu öffnen? Playlist, Drag&Drop, Open-Button?

Rechtsklick auf visualisierung -> Player -> Öffnen -> Audiodatei öffnen.
Dann wähle ich das Lied aus, das fenster schließt sich wieder und nix passiert -.-

Hmm... kann ich bei mir nicht nachvollziehen. Öffne mal via Hauptmenü-Optionen-System-Show/Hide Console die Konsole. Wird dort beim Versuch die Audiodatei, wie Du es beschrieben hast, zu öffnen ein Fehler angezeigt?

nÖ...nix...nicht mal in der konsole.
und am lied kanns nicht liegen, ich hab mehrere probiert.
komisch ist nur das im open-dialog der button der eigendlich mit "Öffnen" beschriftet ist mit "Speichern" beschriftet ist.

Zitat:

Zitat von Dunkel
Zitat:

Zitat von dominikkv
Zitat:

Zitat von Dunkel
TImage.Canvas

ok...das ist ein bisschen zu hoch für mich^^

Quatsch! So schwer ist das nicht! Mit ein wenig experimentieren kriegt man das recht gut hin.

Aber ich hab das noch nie gemacht... und hab kein plan wie das geht^^
gibts da nen tut oder so?

Dunkel 24. Aug 2007 18:58

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
Zitat:

Zitat von dominikkv
nÖ...nix...nicht mal in der konsole.
und am lied kanns nicht liegen, ich hab mehrere probiert.
komisch ist nur das im open-dialog der button der eigendlich mit "Öffnen" beschriftet ist mit "Speichern" beschriftet ist.

Überaus Mysteriös! Ich habe im ganzen Projekt nur ein (1) TSaveDialog verwendet, in einer anderen Klasse, um genauer zu sein, zum Speichern der Playlist. In der Player-Klasse & im Player-Fenster gibt es nur ein TOpenDialog. Das was Du beschreibst dürfte, nein, kann eigentlich garnicht vorkommen! Ich gucke mir das Problem nochmal genauer an.

Zitat:

Zitat von dominikkv
Zitat:

Zitat von Dunkel
Zitat:

Zitat von dominikkv
Zitat:

Zitat von Dunkel
TImage.Canvas

ok...das ist ein bisschen zu hoch für mich^^

Quatsch! So schwer ist das nicht! Mit ein wenig experimentieren kriegt man das recht gut hin.

Aber ich hab das noch nie gemacht... und hab kein plan wie das geht^^
gibts da nen tut oder so?

So male ich die Trackbar, benutze es mal als "Inspiration" :wink:
Delphi-Quellcode:
procedure TF_Player.TrackBar_Draw;
  function ChangeColor(InputColor: TColor; Base, Val: Extended): TColor;
  var
    r,g,b: extended;
  begin
    Val:= 255/(Base+1)*Val;
    Base:=255;
    // Grab RGB values
    r := GetRValue(InputColor);
    g := GetGValue(InputColor);
    b := GetBValue(InputColor);
    // Do the operation
    r := r-((Val/Base)*100);
    g := g-((Val/Base)*100);
    b := b-((Val/Base)*100);
    // Check whether result is in range
    if r > 255 then
      r := 255;
    if r < 0 then
      r := 0;
    if g > 255 then
      g := 255;
    if g < 0 then
      g := 0;
    if b > 255 then
      b := 255;
    if b < 0 then
      b := 0;
    Result := RGB(byte(Round(r)),byte(Round(g)),byte(Round(b)));
  end;
var
  i: integer;
  XX, YY: integer;
  TempBMP: TBitmap;
  PlayerPos: integer;
const
  NetStreamScrollerWidth = 80;
begin
  YY:= 0;
  PlayerPos:= TrackBar_PercentToPos(fPlayer.PosElapsedPercent); // die aktuelle Player-Position in Prozent

  TempBMP:= TBitmap.Create;
  TempBMP.Height:= PB_TrackBar.Height;
  TempBMP.Width:= PB_TRackBar.Width;
  TempBMP.Canvas.Brush.Color:= clWhite;
  TempBMP.Canvas.FillRect(TempBMP.Canvas.ClipRect);

  if not fPlayer.IsNetStream then  // der aktuelle Track ist kein NetStream
    begin

      if fPlayer.PlayerState = psPlay then  // der aktuelle Track wird abgespielt
        if TrackBar_ScrollerCounter <= GetTickCount then
          begin
            TrackBar_ScrollerCounter:= GetTickCount +75;
            Inc(TrackBar_Scroller);
            if TrackBar_Scroller Mod 13 = 0 then
              TrackBar_Scroller:= 0;

        end;

      for i:=0 to PlayerPos do
        begin
          YY:=0;
          if i= 0 then YY:= 3;
          if i= 1 then YY:= 2;
          if i= 2 then YY:= 1;
          if i= PB_TRackBar.Width-1 then YY:= 3;
          if i= PB_TRackBar.Width-2 then YY:= 2;
          if i= PB_TRackBar.Width-3 then YY:= 1;


          TempBMP.Canvas.Pen.Color:= ChangeColor(Color_TrackBar, PlayerPos, i);  // TempBMP.Width
          TempBMP.Canvas.MoveTo(i, 0+YY);
          TempBMP.Canvas.LineTo(i, TempBMP.Height-YY);

          if i MOD 13 = TrackBar_Scroller then
            begin
              TempBMP.Canvas.Pen.Color:= ChangeColor(Color_TrackBar, 500, i);
              TempBMP.Canvas.MoveTo(i-3, 1+YY);
              TempBMP.Canvas.LineTo(i, TempBMP.Height-1-YY);
            end;


        end;

      if fPlayer_RepeatMode = 4  then  // Loop A-B
        begin
          if fPlayer.RepeatABPosASec>= 0 then
            begin
              xx:= TrackBar_SecToPos(Round(fPlayer.RepeatABPosASec));
              TempBMP.Canvas.Pen.Color:= COLOR_TrackBarRepeatAB;
              TempBMP.Canvas.MoveTo(xx-3, 0);
              TempBMP.Canvas.LineTo(xx, TempBMP.Height div 2);
              TempBMP.Canvas.LineTo(xx-3, TempBMP.Height);
              TempBMP.Canvas.LineTo(xx-3,0);
            end;

          if fPlayer.RepeatABPosBSec>= 0 then
            begin
              xx:= TrackBar_SecToPos(Round(fPlayer.RepeatABPosBSec));
              TempBMP.Canvas.Pen.Color:= COLOR_TrackBarRepeatAB;
              TempBMP.Canvas.MoveTo(xx+3, 0);
              TempBMP.Canvas.LineTo(xx, TempBMP.Height div 2);
              TempBMP.Canvas.LineTo(xx+3, TempBMP.Height);
              TempBMP.Canvas.LineTo(xx+3,0);
            end;
        end;

      if (MouseButtonEx(TrackBar_ShiftState) = [mbeLeft]) or
         (MouseButtonEx(TrackBar_ShiftState) = [mbeRight]) then
        if (TrackBar_MouseButton= mbLeft) or (TrackBar_MouseButton= mbRight)then
          begin
            TempBMP.Canvas.Pen.Color:= clWhite;
            TempBMP.Canvas.Brush.Color:= clBlack;
            TempBMP.Canvas.Ellipse(Rect(TrackBar_MousePosX-TempBMP.Height div 3,0+YY,TrackBar_MousePosX+TempBMP.Height div 3, TempBMP.Height-YY));
          end;
    end;

  if fPlayer.IsNetStream then  
    begin
      if fPlayer.PlayerState = psPlay then
        begin
          TrackBar_NetStreamScroller:= TrackBar_NetStreamScroller + 1;

          if TrackBar_NetStreamScroller > TempBMP.Width then
            TrackBar_NetStreamScroller:= -NetStreamScrollerWidth;

          TempBMP.Canvas.Brush.Color:= COLOR_Selected;
          for i:= TrackBar_NetStreamScroller to TrackBar_NetStreamScroller + NetStreamScrollerWidth do
            begin
              YY:=0;
              if i= 0 then YY:= 3;
              if i= 1 then YY:= 2;
              if i= 2 then YY:= 1;
              if i= PB_TRackBar.Width-1 then YY:= 3;
              if i= PB_TRackBar.Width-2 then YY:= 2;
              if i= PB_TRackBar.Width-3 then YY:= 1;

              if i= TrackBar_NetStreamScroller+0 then YY:= 3;
              if i= TrackBar_NetStreamScroller+1 then YY:= 2;
              if i= TrackBar_NetStreamScroller+2 then YY:= 1;
              if i= TrackBar_NetStreamScroller+NetStreamScrollerWidth-0 then YY:= 3;
              if i= TrackBar_NetStreamScroller+NetStreamScrollerWidth-1 then YY:= 2;
              if i= TrackBar_NetStreamScroller+NetStreamScrollerWidth-2 then YY:= 0;
//              if i= TrackBar_NetStreamScroller+NetStreamScrollerWidth-3 then YY:= 1;



              TempBMP.Canvas.Pen.Color:= ChangeColor(Color_TrackBar, TempBMP.Width, i);
              TempBMP.Canvas.MoveTo(i, 0+YY);
              TempBMP.Canvas.LineTo(i, TempBMP.Height-YY);
            end;
        end;
    end;

  with TempBMP.Canvas do
    begin
      if not fPlayer.IsNetStream then
        begin
          if Trackbar_MouseIsInside then
            Pen.Color:= Color_Selected
          else
            Pen.Color:= clBlack;
        end
      else
        Pen.Color:= clBlack;
         
      MoveTo(3, 0);
      LineTo(PB_TRackBar.Width-4,0);
      LineTo(PB_TRackBar.Width-1,3);
      LineTo(PB_TRackBar.Width-1, PB_TRackBar.Height-4);
      LineTo(PB_TRackBar.Width-4, PB_TRackBar.Height-1);
      LineTo(3, PB_TRackBar.Height-1);
      LineTo(0, PB_TRackBar.Height-4);
      LineTo(0, 3);
      LineTo(3, 0);
    end;


  PB_TrackBar.Canvas.CopyRect(Rect(0,0,PB_TrackBar.Width, PB_TrackBar.Height), TempBMP.Canvas, TempBMP.Canvas.ClipRect);
  TempBMP.Free;
end;
Oha, ich muss mich korrigieren. Ich benutze kein TImage sondern eine TPaintBox.

arbu man 23. Sep 2007 20:31

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
Hi,

nettes Programm, allerdings wäre eine Favoriten Funktion für Radio Sender gut, so muss man die Stationen nicht immer wieder Suchen.

mfg, Björn

dominikkv 23. Sep 2007 20:44

Re: AudioDB 5.3.2.2 - Internet-Stream & Audio-Player
 
ohh..aso...hab ich ganz vergessen *schäm*

vielen Dank für dein Beispiel

ich hab mal einiges abgeschrieben und in eine schon fertige progressbar irgendwie reingewurschtelt...
geht :thumb:
sogar schon zur designtime :cyclops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 Uhr.
Seite 2 von 4     12 34      

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