TEKNOLOJİNİN YENİ ADRESİ
Would you like to react to this message? Create an account in a few clicks or log in to continue.

TEKNOLOJİNİN YENİ ADRESİ

Teknoloji Ve Webtasarım Yeni Adresi
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap

 

 Media playerlariniz için winamp apileri

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin
Admin


Mesaj Sayısı : 105
Kayıt tarihi : 28/07/09

Media playerlariniz için winamp apileri Empty
MesajKonu: Media playerlariniz için winamp apileri   Media playerlariniz için winamp apileri Icon_minitimePerş. Tem. 30, 2009 10:36 am

unit WinampApi;

interface
uses Windows,Messages,Classes,SysUtils;
type
TWinampApi = class
private
WinampHnd : THandle;
function ConvertTime(n: integer;m : integer): string;
function ConvertTimeTool(n: integer): string;
function split(seperator: Char; text: String; var list: TStringList): Integer;
public
WinampPath : String;
SongLengthParseTime : Boolean;
SongPosParseTime : Boolean;
constructor Create(WPath : String);
function getWhatsPlaying():String;
function getSongState():String;
function getSongPosition():String;
function getSongLength():String;
function getSongSampleRate():String;
function getSongBitRate():String;
function getSongChannels():String;
function getPlayListPosition():String;
function getPlayListLength():String;
procedure getPlayList(var PlayList:TStringList;var FileList:TStringList);
procedure PlaySong(Mp3Name:string);
procedure AddToPlayList(Mp3Name:string);
procedure Play();
procedure Stop();
procedure Pause();
procedure NextTrack();
procedure PreviousTrack();
procedure Forward5Seconds();
procedure Back5Seconds();
procedure StartOfPlayList();
procedure VolumeUp();
procedure VolumeDown();
procedure FadeOutStop();
end;
implementation
{ ----- PUBLIC VOID/NULL RETURN METHODS ---- }
constructor TWinampApi.Create(WPath : String);
begin
SongLengthParseTime := False;
SongPosParseTime := False;
WinampPath := WPath;
WinampHnd := FindWindow(\'Winamp v1.x\', nil);
end;
procedure TWinampApi.PlaySong(Mp3Name:String);
begin
WinExec(PChar(\'\"\'+WinampPath+\'\\winamp.exe\" \"\'+Mp3Name+\'\"\'),SW_SHOW);
end;
procedure TWinampApi.AddToPlayList(Mp3Name:String);
begin
WinExec(PChar(\'\"\'+WinampPath+\'\\winamp.exe\" /ADD \"\'+Mp3Name+\'\"\'),SW_SHOW);
end;
procedure TWinampApi.Play();
begin
SendMessage(WinampHnd, WM_COMMAND, 40045, 0);
end;
procedure TWinampApi.Stop();
begin
SendMessage(WinampHnd, WM_COMMAND, 40047, 0);
end;
procedure TWinampApi.Pause();
begin
SendMessage(WinampHnd, WM_COMMAND, 40046, 0);
end;
procedure TWinampApi.NextTrack();
begin
SendMessage(WinampHnd, WM_COMMAND, 40048, 0);
end;
procedure TWinampApi.PreviousTrack();
begin
SendMessage(WinampHnd, WM_COMMAND, 40044, 0);
end;
procedure TWinampApi.Forward5Seconds();
begin
SendMessage(WinampHnd, WM_COMMAND, 40148, 0);
end;
procedure TWinampApi.Back5Seconds();
begin
SendMessage(WinampHnd, WM_COMMAND, 40144, 0);
end;
procedure TWinampApi.StartOfPlayList();
begin
SendMessage(WinampHnd, WM_COMMAND, 40154, 0);
end;
procedure TWinampApi.VolumeUp();
begin
SendMessage(WinampHnd, WM_COMMAND, 40058, 0);
end;
procedure TWinampApi.VolumeDown();
begin
SendMessage(WinampHnd, WM_COMMAND, 40059, 0);
end;
procedure TWinampApi.FadeOutStop();
begin
SendMessage(WinampHnd, WM_COMMAND, 40147, 0);
end;
function TWinampApi.getWhatsPlaying():String;
var
TitleLen: integer;
TempInt : Integer;
TempStr: String;
begin
TempStr := \'Winamp isn\'\'t running\';
if WinampHnd <> 0 then
begin
// Get wHnd text
TitleLen := GetWindowTextLength(WinampHnd)+2;
SetLength(TempStr,TitleLen);
GetWindowText(WinampHnd,Pchar(TempStr),TitleLen);
SetLength(TempStr,Length(TempStr));
// Remove \'- Winamp\' part
TempInt := Pos(\'- Winamp\',TempStr);
TempStr := Copy(TempStr,0,TempInt -2); // Knock of space and -
end;

result := TempStr;
end;
procedure TWinampApi.getPlayList(var PlayList:TStringList;var FileList:TStringList);
var
Buffer: string;
Stream: TFileStream;
FileStr : String;
TempList : TStringList;
TempListLen : Integer;
TempStr,TempStr2 : String;
TempPos,TempPos2 : Integer;
i : Integer;
begin
SendMessage(WinampHnd,WM_USER,0,120);
Stream := TFileStream.Create(WinampPath+\'\\winamp.m3u\', fmShareDenyNone);
try
SetLength(buffer, Stream.Size);
Stream.Read(Buffer[1], Stream.Size);
FileStr := Buffer;
finally
Stream.Free;
end;
TempList := TStringList.Create;
TempListLen := Split(\'#\',FileStr,TempList);
// Start from 1 to cut out \'#EXTM3U\'. Grab Name and Filename
for i:=2 to TempListLen -1 do
begin
TempPos := Pos(\',\',TempList.Strings);
TempPos2 := Pos(#13,TempList.Strings);
TempStr := Copy(TempList.Strings,TempPos +1,(TempPos2 -1) - TempPos);
TempStr2 := Copy(TempList.Strings,TempPos2 +2,(Length(TempList.Strings) -1) - (TempPos2 +2));
PlayList.Add(TempStr);
FileList.Add(TempStr2);
end;
TempList.Free;
end;
{ ----- PUBLIC RETURN METHODS ---- }
function TWinampApi.getSongState():String;
var
SongState : Word;
SongStateStr : String;
begin
SongState := SendMessage(WinampHnd,WM_USER,0,104);
case SongState of
1: SongStateStr:= \'playing\';
3: SongStateStr:= \'paused\';
0: SongStateStr:= \'stopped\'
else
SongStateStr := \'unknown\';
end;
Result := SongStateStr;
end;
function TWinampApi.getSongPosition():String;
var
TempInt : Integer;
begin
TempInt := SendMessage(WinampHnd,WM_USER,0,105);

if SongPosParseTime then
Result := ConvertTime(TempInt,1000)
else
Result := IntToStr(TempInt);
end;
function TWinampApi.getSongLength():String;
var
TempInt : Integer;
begin
TempInt := SendMessage(WinampHnd,WM_USER,1,105);

if SongLengthParseTime then
Result := ConvertTime(TempInt,1)
else
Result := IntToStr(TempInt);
end;
function TWinampApi.getSongSampleRate():String;
begin
Result := IntToStr(SendMessage(WinampHnd,WM_USER,0,126));
end;
function TWinampApi.getSongBitRate():String;
begin
Result := IntToStr(SendMessage(WinampHnd,WM_USER,1,126));
end;
function TWinampApi.getSongChannels():String;
begin
Result := IntToStr(SendMessage(WinampHnd,WM_USER,2,126));
end;
function TWinampApi.getPlayListPosition():String;
var
TempInt : Integer;
begin
TempInt := SendMessage(WinampHnd,WM_USER,0,125);
if StrToInt(getPlayListLength()) <1 then
Result := IntToStr(TempInt)
else
Result := IntToStr(TempInt +1);
end;
function TWinampApi.getPlayListLength():String;
begin
Result := IntToStr(SendMessage(WinampHnd,WM_USER,0,124));
end;
{ ----- PRIVATE METHODS ----- }
function TWinampApi.ConvertTime(n: integer;m : integer): string;
begin
n := n div m;
result := ConvertTimeTool(n div 60) + \':\' + ConvertTimeTool(n mod 60);
end;
function TWinampApi.ConvertTimeTool(n: integer): string;
begin
if n < 10 then
result := \'0\' + inttostr(n)
else
result := inttostr(n);
end;
function TWinampApi.split(seperator: Char; text: String; var list: TStringList): Integer;
var
mypos, number: Integer;
begin
number:=0;
if Length(text) > 0 then
begin
if text[Length(text)] <> seperator then
text:=text+seperator;
while(Pos(String(seperator),text))>0 do
begin
mypos:=Pos(String(seperator),text);
list.Add(Copy(text,1,mypos-1));
text:=Copy(text,mypos+1,Length(text)-mypos);
Inc(number);
end;
end;
Result:=number;
end;
end.
Sayfa başına dön Aşağa gitmek
http://kasirga.hareketforum.org
 
Media playerlariniz için winamp apileri
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Reklam pencerelerinden kurtulmak için

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
TEKNOLOJİNİN YENİ ADRESİ :: Yazılım-
Buraya geçin: