Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi winamp status abfragen (https://www.delphipraxis.net/64303-winamp-status-abfragen.html)

easteregg 1. Mär 2006 23:30


winamp status abfragen
 
Hallo,

Ich bin ja noch relativ neu hier, aber leider bin ich im forum selbst zu meinem problem noch nicht fündig geworden.

Ich suche eine Möglichkeit den Aktuellen Winamp Titel auszulesen, dazu vlt. noch die aktuelle spieldauer und wie lang der titel komplett ist.
Das ganze soll periodisch gemacht werden, so das eben auch kurze titel erfasst werden, bzw. wenn ich eben meine lieder durchzappe.

Ich habe jetzt schon ein paar infos gefunden wie man das machen kann -> Winampapi

allerdings sind die ganzen links die ich gefunden haben alle veraltet und mit dem JVCL wo so eine komponente drin war bin ich auch nicht weitergekommen.
weil da irgendwie teile fehlen!

Dann habe ich einen quellcode gefunden, der das auch ohne diese API machen kann - nur überschreitet der bei weitem meine fähigkeiten :)
deswegen wollte ich mal fragen ob mir jemand mal vlt. an einem kurzen codebeispiel da weiterhelfen könnte, bzw. mir mal einer paar tipps zu seiten über die winamp api geben könne.
mit google bzw. auf winamp.com hab ich wenn überhaupt nur sachen für C gefunden, womit ich allerdings gar nichts anfangen kann!

wäre toll wenn mir da jemand behilflich sein könnte!

mfg, easteregg

Luckie 2. Mär 2006 00:02

Re: winamp status abfragen
 
Zitat:

Zitat von easteregg
Ich bin ja noch relativ neu hier, aber leider bin ich im forum selbst zu meinem problem noch nicht fündig geworden.

Das glaube ich nicht. Wenn ich nach Hier im Forum suchenwinamp titel suche, finde ich zum Beispiel das: http://www.delphipraxis.net/internal...t=winamp+titel Da es OpenSource ist, sollte sich da was finden lassen.

easteregg 2. Mär 2006 00:03

Re: winamp status abfragen
 
das war das programm, was mein können überstieg ;)
denn es nützt mir kein code, der zwar irgendwie funktioniert - aber ich keine ahnung hab warum und wieso

Wishmaster 2. Mär 2006 00:22

Re: winamp status abfragen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi
Ich habe in meine Sammlung ne Demo dazu gefunden feileicht hilft dir das weiter.

easteregg 2. Mär 2006 00:45

Re: winamp status abfragen
 
mir fehlt da allerdings die komponente WinAmpControl, ich werde morgen mal schauen woher ich die bekomme.
danke erstmal für die infos :)

easteregg 2. Mär 2006 17:58

Re: winamp status abfragen
 
also irgendwie, ich habe mir das jetzt mal angeschaut, im forum auch die komponente noch gefunden, aber wenn ich die installieren will sagt der mir einen fehler im quellcode, und auch das programm will sich nicht kompilieren lassen weil eben die komponente nun fehlt?

aber ich glaube doch mal kaum, das die fehler im quellcode enthält?

Rastaman 2. Mär 2006 18:06

Re: winamp status abfragen
 
@Luckie: Das triffts besser ;)

easteregg 2. Mär 2006 18:09

Re: winamp status abfragen
 
das hat ich ja vorhin gefunden, aber wenn ich wie gesagt das in delphi per "komponente installieren" einbinden will, meckert der über fehler im quellcode!

Rastaman 2. Mär 2006 18:20

Re: winamp status abfragen
 
Ne darfste nicht, is keine Komponente.

Einfach
Delphi-Quellcode:
uses
  ..., WinampControl, ...
eintragen und dann selbst erstellen:

Delphi-Quellcode:
var
  WA: TWinampControl;
begin
  WA := TWinampControl.Create;
  Form1.Caption := WA.GetWindowText;
  WA.Destroy;
end;

easteregg 2. Mär 2006 18:41

Re: winamp status abfragen
 
Ich verstehs nicht!

ich hab jetzt erstmal die demo von Wishmaster ausprobieren wollen.
die hab ich entpackt, die winampcontrol.pas mit in das verzeichnis kopiert...


Zitat:

kLASSE twinampcontrol nicht gefunden. Fhler ignorieren und forfahren? ...
das umgeh ich ja indem ich in den uses-teil die winampcontrol mit einfüge!

gesagt getan - so weit, so gut!

wenn ich jetzt auf compilieren drücke meckert der

Zitat:

Fekd Form1.winampcontrol1 besitzt keine entsprechnede Komponente. SOll die Deklaration entfernt werden?
da habe ich erstmal auf nein geklickt und nun findet der in der winampcontrol.pas nen fehler

Delphi-Quellcode:
unit WinAmpControl;

interface

uses
  Windows, Messages, Classes, ShellApi, Registry;

{
  ** Record that obtains the Winamp EQ Data
}
type
  TEQData = packed record
    Enabled, Autoload,
    EQ_60  , EQ_170,
    EQ_310 , EQ_600,
    EQ_1k , EQ_3k,
    EQ_6k , EQ_12k,
    EQ_14k , EQ_16k,
    Preamp : Integer;
end;

type
  TWinAmpControl = class(TComponent)
  private
    const
      WM_WA_IPC            = WM_USER;
      WM_WA_CMD            = WM_COMMAND;
      IPC_DELETE           = 101;
      IPC_IS_PLAYING       = 104;
      IPC_GETOUTPUTTIME    = 105;
      IPC_JUMPTOTIME       = 106;
      IPC_WRITEPLAYLIST    = 120;
      IPC_SETLISTPOS       = 121;
      IPC_SETVOLUME        = 122;
      IPC_SETPANNING       = 123;
      IPC_GETLISTLENGTH    = 124;
      IPC_GETLISTPOS       = 125;
      IPC_GETINFO          = 126;
      IPC_GETEQDATA        = 127;
      IPC_RESTARTWINAMP    = 135;
      IPC_GETPLAYLISTFILE  = 211;
      IPC_GET_SHUFFLE      = 250;
      IPC_GET_REPEAT       = 251;
      IPC_SET_SHUFFLE      = 252;
      IPC_SET_REPEAT       = 253;
      CMD_CLOSE            = 40001;
      CMD_PREVIOUS         = 40044;
      CMD_PLAY             = 40045;
      CMD_PAUSE_RESUME     = 40046;
      CMD_STOP             = 40047;
      CMD_NEXT             = 40048;

    function GetHandle: HWND;
    function GetOutputTime: Integer;
    function GetOutputPos: LongInt;
    function GetPlaylistPos: Integer;
    function GetRepeatState: Integer;
    function GetShuffleState: Integer;
    procedure JumpToTime(pos: LongInt);
    procedure SetPlaylistPos(pos: LongInt);
    procedure SetRepeatState(state: Integer);
    procedure SetShuffleState(state: Integer);

  public
    function Execute(params: String): Integer;
    function GetBitRate: Integer;
    function GetEQData: TEQData;
    function GetFileNameByPlaylistPos(pos: Integer): String;
    function GetPlaybackState: Integer;
    function GetRootFolder: String;
    function GetPlaylistCount: Integer;
    function GetSampleRate: Integer;
    function GetWindowText: String;
    function IsRunning: Boolean;
    function IsStreaming: Boolean;
    procedure ClearPlayList;
    procedure Close;
    procedure Pause_Resume;
    procedure RestartWinamp;
    procedure SavePlaylist;
    procedure SetBalance(pos: Byte);
    procedure SetVolume(vol: Byte);
    procedure StartPlayback;
    procedure StopPlayback;
    procedure SwapRepeatState;
    procedure SwapShuffleState;
    procedure SwitchTrack(direction: Integer);
    procedure Terminate;
    property Handle: HWND read GetHandle;
    property PlaylistPos: Integer read GetPlaylistPos write SetPlaylistPos;
    property RepeatState: Integer read GetRepeatState write SetRepeatState;
    property ShuffleState: Integer read GetShuffleState write SetShuffleState;
    property TrackLength: Integer read GetOutputTime;
    property TrackPos: LongInt read GetOutputPos write JumpToTime;
end;
direkt nach dem "privat" tut der mir die zeile mit dem "const" markieren und sagt dazu "winampcontrol.pas 'end' erwartet, aber 'CONST' gefunden.

aber es kann doch nicht sein, das die nicht funktioniert?

oder bin ich hier total auf dem holzweg?
:cry:

easteregg 4. Mär 2006 17:23

Re: winamp status abfragen
 
soa, nach langem probieren habe ich es soweit erstmal geschafft, ich kann mein winamp damit steuern und alles :)
danke für eure hilfe!

nur jetzt habe ich ja ein problem, das wichtigste - was ich eigentlich überhaupt wollte - ist ja den aktuellen titel auslesen.
aber das klappt mit dem winampctr nicht!

ich kann zwar die function aufrufen aber sie gibt nichts zurück, also der string bleibt leer.
davon ist auch das demo programm betroffen wie ich herrausgefunden habe.

deswegen steh ich da jetzt bisschen auf dem schlauch!
kann mir da vlt. noch jemand weiterhelfen?

lg easteregg

Rastaman 4. Mär 2006 18:55

Re: winamp status abfragen
 
Also ne sorry, keine Ahnung was du hast, bei mir funktioniert alles :gruebel:

easteregg 5. Mär 2006 02:11

Re: winamp status abfragen
 
aahh :) ich habs rausgefunden
das trackdata greift nur die id3 tags ab!
wenn ich nen lied ohne id3 tag habe muss ich das aus dem filenamen rausschnippeln wie der song heist :)

damit wäre ja alles beantwortet :)
danke euch!

edit: wie kann ich das "offene frage" jetzt abschalten?!
stand ja da man solle das machen, aber wenn ich den ersten post editiren will steht da nur "nach 24h nichtmehr möglich"


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.

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