Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Вниз

Длина PlayList-а в WinAmp 2.x в секундах   Найти похожие ветки 

 
lord Zeratul ©   (2005-07-23 13:33) [0]

День добрый! Может кто-нибудь знает, как узнать длину PlayList-а в WinAmp 2.x в секундах. Я знаю, что для работы с WinAmp существует множество компонентов, но ни в одном из них я не нашёл такого свойства. В принципе, частично я эту задачу решил, написав следующий код, но мне надо реализовать «длина PlayList в секундах» как свойство.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, WinampControl;

var
 Form1: TForm1;
 W:TWinampControl;

procedure TForm1.Button1Click(Sender: TObject);
begin
    Label1.Caption:=IntToStr(W.ReturnListLength);
end;

unit WinampControl;

interface

uses
 Windows, Messages, SysUtils, Classes;

type
 TWinampControl = class(TComponent)
 private
  function SendToWA(Msg: Cardinal; wParam: integer; lParam: integer): boolean;
  function SendToWAResult(Msg: Cardinal; wParam: integer; lParam: integer; var value: integer): boolean;
 protected
   { Protected declarations }
 public

  function NextTrack: boolean; // переходит к следующему треку
  function PrevTrack: boolean; // переходит к предыдущему треку
  function Stop: boolean; // останавливает WinAmp
  function GetLength: integer; // длина текущего трека в секундах
  function ReturnListCount:integer; // число треков в плэй листе
  function ReturnListLength:integer; // длина плэй листа
  function StartOfPL: boolean; // перейти к началу плэй листа
  function EndOfPL: boolean; // перейти к концу плэй листа
  function CloseWinamp: boolean; // закрыть WinAmp

 published
   { Published declarations }
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("SpECTre", [TWinampControl]);
end;

function TWinampControl.ReturnListLength():integer;
var
 i:integer;
 intTime:integer;
begin
 intTime:=0;
 for i:=1 to ReturnListCount do
    begin
       intTime:=intTime+GetLength;
       NextTrack;
       Stop;
    end;
    StartOfPL;
    Result:=intTime;
end;

function TWinampControl.SendToWA(Msg: Cardinal; wParam: integer; lParam: integer): boolean;
var
Handle: HWND;
begin
Handle:=FindWindow("Winamp v1.x",nil);
if Handle<>0 then
begin
 SendMessage(Handle, Msg, wParam, lParam);
 Result:=true;
end
else Result:=false;
end;

function TWinampControl.SendToWAResult(Msg: Cardinal; wParam: integer; lParam: integer; var value: integer): boolean;
var
Handle: HWND;
begin
value:=0;
Handle:=FindWindow("Winamp v1.x",nil);
if Handle<>0 then
begin
 value:=SendMessage(Handle, Msg, wParam, lParam);
 Result:=true;
end
else Result:=false;
end;

function TWinampControl.ReturnListCount:integer;
var
i: integer;
begin
 SendToWAResult(WM_USER,1,124,i);
 Result:=i;
end;

function TWinampControl.NextTrack: boolean;
begin
Result:=SendToWA(WM_COMMAND,40048,0);
end;

function TWinampControl.PrevTrack: boolean;
begin
Result:=SendToWA(WM_COMMAND,40044,0);
end;

function TWinampControl.Stop: boolean;
begin
Result:=SendToWA(WM_COMMAND,40047,0);
end;

function TWinampControl.GetLength: integer;
var
i: integer;
begin
SendToWAResult(WM_USER,1,105,i);
Result:=i;
end;

function TWinampControl.StartOfPL: boolean;
begin
Result:=SendToWA(WM_COMMAND,40154,0);
end;

function TWinampControl.EndOfPL: boolean;
begin
Result:=SendToWA(WM_COMMAND,40158,0);
end;

function TWinampControl.CloseWinamp: boolean;
begin
Result:=SendToWA(WM_COMMAND,40001,0);
end;

end.


 
Antonn ©   (2005-07-23 17:34) [1]

lord Zeratul ©   (23.07.05 13:33)
простите за любопытство, но мне всегда было интересно, зачем люди хотят через свою программу, управлять винампом?


 
lord Zeratul ©   (2005-07-24 22:29) [2]

Отвечу легко! Конкретно для меня: я включаю WinAmp и ложусь спать. Когда WinAmp отыгрывает весь плей-лист, питание компьютер а отключается. Следовательно, мне надо узнать "длину" плэй-листа.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
11-1097352597
Shanker
2004-10-10 00:09
2005.12.25
Проблема с закладками в TabControl


3-1131359266
M@xim
2005-11-07 13:27
2005.12.25
Клиент - сервер


6-1126760710
KLAUS
2005-09-15 09:05
2005.12.25
SMTP нужное кол-во раз


1-1133373761
Draught
2005-11-30 21:02
2005.12.25
Приостановка выполнения процедуры, до завершения потока.


2-1134294907
Kot
2005-12-11 12:55
2005.12.25
Реидексация





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский