DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: vic_168999
今日帖子: 0
在线用户: 1
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 noko1981 (诺克) ★☆☆☆☆ -
盒子活跃会员
2004/1/16 12:59:21
标题:
小型播放器 浏览:3803
加入我的收藏
楼主: NP0201B4.exe
http://nokoking.nease.net/down/NP0201B4.exe
制作时间:2001.06.14
制作环境:WIN9X+Borland C++builder4
主要功能:换肤(但是因故并没有做完,只有两种皮肤,而且只能人工。将nply.nin文件里内容清空就会到一个可爱的界面,要是回到金属时代,在nply.nin加入lz.skn即可);播放列表;键盘控制;文件拖放等。

NP026B.exe
http://nokoking.nease.net/down/NP026B.exe
制作时间:2003.07.19
制作环境:WIN9X+DELPHI7
主要功能:文件拖放;播放列表;音量控制;声道控制;光驱控制;广播;关联设置;远程下载(关闭了)等。

NP026_XP.exe
http://nokoking.nease.net/down/NP026_XP.exe
制作时间:2003.07.19
制作环境:WINXP+DELPHI7
主要功能:文件拖放;播放列表;音量控制;声道控制;光驱控制;关联设置;远程下载(关闭了)等。

NP027B.exe
http://nokoking.nease.net/down/NP027B.exe
制作时间:2003.10.05
制作环境:WIN9X/XP+DELPHI7
主要功能:文件拖放;播放列表;音量控制;声道控制;光驱控制;靠顶隐身等。

NP028B.exe
http://nokoking.nease.net/down/NP028B.exe

制作时间:2003.10.05
制作环境:WIN9X/XP+DELPHI7
主要功能:文件拖放;播放列表;音量控制;靠顶隐身等。


以下是NP028B.exe的源代码

unit Nplayer028;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, Buttons, StdCtrls,ShellApi, MPlayer,MmSystem,
ComCtrls;
const MY_Height = -114;
type
TNPX = class(TForm)
mainbox: TImage;
Pup: TSpeedButton;
Pexit: TSpeedButton;
Pplay: TSpeedButton;
Ppause: TSpeedButton;
Pstop: TSpeedButton;
Pdown: TSpeedButton;
NPmusic_list: TListBox;
NPmusic_list2: TListBox;
Plist: TSpeedButton;
MP: TMediaPlayer;
NPtime: TTimer;
NPmusic_title: TLabel;
NPmusic_time: TLabel;
NPsound_s: TImage;
NPtime1: TTimer;
NPprogress: TImage;
OD: TOpenDialog;
Popen: TSpeedButton;
Pmini: TSpeedButton;
Pabout : TSpeedButton;
Nploop: TSpeedButton;
clearFilelist: TSpeedButton;
procedure PexitClick(Sender: TObject);
procedure PlistClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure mainboxMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure mainboxMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure mainboxMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure NPsound_sMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure NPsound_sMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure NPsound_sMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure NPtime1Timer(Sender: TObject);
procedure NPmusic_list2Click(Sender: TObject);
procedure MPNotify(Sender: TObject);
procedure NPlay;
procedure NPprogressMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure NPprogressMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure NPprogressMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure NPtimeTimer(Sender: TObject);
procedure PupClick(Sender: TObject);
procedure PdownClick(Sender: TObject);
procedure PplayClick(Sender: TObject);
procedure PpauseClick(Sender: TObject);
procedure PstopClick(Sender: TObject);
procedure PopenClick(Sender: TObject);
procedure PminiClick(Sender: TObject);
procedure PaboutClick(Sender: TObject);
procedure NploopClick(Sender: TObject);
procedure clearFilelistClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure WMDropFiles(var message:TMessage);message WM_DROPFILES;
end;

var
NPX: TNPX;
moves: bool;
mX,mY: integer;
pl,ploop: bool;
p,setp:integer;
mydir:string;
//设置音量
Smove:bool;
sX:integer;

implementation

{$R *.dfm}
//记算时间
function showtime(x:integer):string;
var
h,m:integer;
begin
h:=0;
m:=0;

x:=x div 1000;
if x>3600 then
begin
h:=x div 3600;
x:=x-h*3600;
end;
if x>60 then
begin
m:=x div 60;
x:=x-m*60;
end;

showtime:=inttostr(h)+':'+inttostr(m)+':'+inttostr(x);
end;
//获取托放文件
procedure TNPx.WMDropFiles(var message:TMessage);
var
P:array[0..254] of char;
I:word;
begin
Inherited;

{$IFDEF WIN32}
I:=DragQueryFile(Message.wParam,$ffffffff,nil,0);
{$ELSE}
I:=DragQueryFile(Message.wParam,$ffff,nil,0);
{$ENDIF}
for I:=0 to I-1 do
begin
DragQueryFile(Message.WParam,I,P,255);
NPmusic_list.Items.Add(StrPas(p));
NPmusic_list2.Items.Add(ExtractFileName(StrPas(p)));
end;
end;
//退出
procedure TNPX.PexitClick(Sender: TObject);
begin
close;
end;
//显示列表
procedure TNPX.PlistClick(Sender: TObject);
begin
if NPmusic_list2.Visible=true then NPmusic_list2.Hide else NPmusic_list2.Show;
end;

procedure TNPX.FormCreate(Sender: TObject);
var
SoundPostion: Longint;
begin
//获取文件
DragAcceptFiles(NPx.Handle,True);
//取当前音量状态发给音量控制
Smove:=false;
WaveOutGetVolume(0, @SoundPostion);

NPsound_s.Left:=112+Round(Hi(SoundPostion)/255*45);
//设置窗体移动参数
moves:=false;
//设置列表窗口
NPmusic_list.Top:=17;
NPmusic_list.Left:=8;
NPmusic_list.Width:=260;
NPmusic_list.Height:=55;
NPmusic_list2.Top:=17;
NPmusic_list2.Left:=8;
NPmusic_list2.Width:=260;
NPmusic_list2.Height:=55;


MP.TimeFormat:=tfHMS;

NPtime.Enabled:=false;
MP.Notify:=true;
pl:=false;
ploop:=true;
setp:=1;
mydir:=ExtractFileDir(application.ExeName);
if copy(mydir,Length(mydir), 1)<>' then mydir:=mydir+';
//有执行参数传入
if ParamCount > 0 then
begin
NPmusic_list.Items.Clear;
NPmusic_list.Items.Add(ParamStr(1));
NPmusic_list2.Items.Clear;
NPmusic_list2.Items.Add(ExtractFileName(ParamStr(1)));
p:=0;
NPmusic_title.Caption:=ExtractFileName(ParamStr(1));
NPtime.Enabled :=true;
end;
end;
//窗体移动
procedure TNPX.mainboxMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if moves=true then
begin
NPx.Left:=NPx.Left+X-mX;
NPx.Top:=NPx.Top+Y-mY;
end;
end;

procedure TNPX.mainboxMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if moves=false then
begin
moves:=true;
mx:=X;
my:=Y;
end;
end;

procedure TNPX.mainboxMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if moves=true then moves:=false;
end;
//窗体移动结束
//调整音量
procedure TNPX.NPsound_sMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Smove=true then NPsound_s.Left:=NPsound_s.Left+X-sX;
if NPsound_s.Left>157 then NPsound_s.Left:=157;
if NPsound_s.Left<112 then NPsound_s.Left:=112;
end;

procedure TNPX.NPsound_sMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Smove=false then
begin
Smove:=true;
mx:=X;
NPtime1.Enabled:=false;
end;
end;

procedure TNPX.NPsound_sMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
ProBarVal, SoundVal: longint;
begin
NPtime1.Enabled:=true;
if Smove=true then
begin
Smove:=false;
ProBarVal := Round((NPsound_s.left-112)/45*255);
SoundVal := (ProBarVal shl 8) or (ProBarVal shl 24);
waveoutsetvolume(0, SoundVal);
end;
end;
//调整音量结束
//自动隐身
procedure TNPx.NPtime1Timer(Sender: TObject);
var
tpos:TPoint;
T:bool;
SoundPostion: Longint;
begin
//info.Caption:=datetimetostr(now);
//取当前音量状态发给音量控制
WaveOutGetVolume(0, @SoundPostion);
NPsound_s.Left:=112+Round(Hi(SoundPostion)/255*45);
if (NPx.top>=MY_Height) and (NPx.top<5) then
begin
T:=true;
end
else
begin
T:=false;
end;
if T=true then
begin
GetCursorPos(tpos);
if (tpos.X>NPx.Left) and (tpos.X<(NPx.Left+NPx.Width)) and (tpos.Y>NPx.Top) and (tpos.Y<(NPx.Top+NPx.Height+10)) then
begin
NPx.Top:=0;
//让本窗体始终位于所有窗体之上
setWindowPos(Application.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
end
else
begin
NPx.Top:=MY_Height;
end;
end;
end;
//播放过程
procedure TNPX.Nplay;
begin
MP.Close;
MP.FileName:=NPmusic_list.Items.Strings[p];
try
MP.Open;
MP.Play;
pl:=true;
except
MP.Close;
NPtime.Enabled:=false;
showmessage('有错误,媒体格式不对或路径不对');
end;
NPmusic_list2.ItemIndex:=p;
NPmusic_title.Caption :=ExtractFileName(MP.FileName);
application.Title:='诺克播放器v0.28TIGER->'+NPmusic_title.Caption;
NPmusic_title.Hint:=MP.FileName;
end;
//列表单击播放
procedure TNPX.NPmusic_list2Click(Sender: TObject);
begin
p:=NPmusic_list2.ItemIndex;
NPtime.Enabled :=true;
Nplay;
end;
//验证播放器
procedure TNPX.MPNotify(Sender: TObject);
begin
if MP.NotifyValue=nvSuccessful then
begin
NPmusic_time.Caption:=showtime(MP.Position)+'/'+showtime(MP.Length);
end;
MP.Notify:=true;
end;
//设置进度
procedure TNPX.NPprogressMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Smove=true then NPprogress.Left:=NPprogress.Left+X-sX;
if NPprogress.Left>248 then NPprogress.Left:=248;
if NPprogress.Left<16 then NPprogress.Left:=16;
end;

procedure TNPX.NPprogressMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Smove=false then
begin
Smove:=true;
mx:=X;
NPtime.Enabled :=false;
end;
end;

procedure TNPX.NPprogressMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Smove=true then
begin
Smove:=false;
if pl then
begin
MP.Position:=Round((NPprogress.Left-16)/232*MP.Length);
NPtime.Enabled :=true;
MP.Play;
end;
end;
end;
//设置进度结束
//进度
procedure TNPX.NPtimeTimer(Sender: TObject);
begin
if pl=false then
begin
if p<=NPmusic_list.Items.Count-1 then
begin
Nplay;
end
else
begin
p:=0;
NPtime.Enabled:=false;
NPmusic_time.Caption:=showtime(MP.Position)+'/'+showtime(MP.Length);
end;
end
else
begin
NPmusic_time.Caption:=showtime(MP.Position)+'/'+showtime(MP.Length);

NPprogress.Left:=16+Round(MP.Position/MP.Length*232);

if MP.Position=MP.Length then
begin
p:=p+setp;
setp:=1;
if p<0 then p:=0;
if (ploop=true) and (p>NPmusic_list.Items.Count-1) then p:=0;
pl:=false;
NPmusic_list2.ItemIndex:=p;
end;
end;

end;
//上一曲
procedure TNPX.PupClick(Sender: TObject);
begin
if pl=true then
begin
p:=p-1;
if p<0 then P:=NPmusic_list.Items.Count-1;
NPtime.Enabled :=true;
Nplay;
end;
end;
//下一曲
procedure TNPX.PdownClick(Sender: TObject);
begin
if pl=true then
begin
p:=p+1;
if p>NPmusic_list.Items.Count-1 then P:=0;
NPtime.Enabled :=true;
Nplay;
end;
end;
//播放
procedure TNPX.PplayClick(Sender: TObject);
begin
if pl=true then MP.Play;
NPtime.Enabled :=true;
end;
//暂停
procedure TNPX.PpauseClick(Sender: TObject);
begin
if NPtime.Enabled=true then
begin
MP.Pause;
NPtime.Enabled :=false;
end;
end;
//停止
procedure TNPX.PstopClick(Sender: TObject);
begin
if NPtime.Enabled=true then
begin
MP.stop;
NPtime.Enabled :=false;
end;
end;
//打开
procedure TNPX.PopenClick(Sender: TObject);
var
i:integer;
begin

if(OD.Execute()) then
begin
NPmusic_list.Items:=OD.Files;
NPmusic_list2.Items.clear;
for I:=0 to NPmusic_list.Count-1 do
begin
NPmusic_list2.Items.Add(ExtractFileName(NPmusic_list.Items.Strings[i]));
end;
p:=0;

end;
end;
//最小化
procedure TNPX.PminiClick(Sender: TObject);
begin
application.Minimize;
end;
// 版权信息
procedure TNPX.PaboutClick(Sender: TObject);
begin
MessageBox(Handle, '诺克媒体播放器v0.28'+#13+'作者:王德超'+#13+
'2001.05 v0.1 VB 单曲播放 for win9x'+#13+
'2001.06.14 v0.2 BCB4 播放列表、皮肤等 for win9x/winXp'+#13+
'2001.09.20 v0.201b4 键盘控制、文件拖放等 for win9x/winXp'+#13+
'2003.02.02 v0.25复活版 delphi7 重塑代码 for win9x'+#13+
'2003.07.19 v0.26 广播、下载 for win9x'+#13+
'2003.10.05 v0.27XP 自动隐身 for win9x/winXP'+#13+
'2004.01.01 v0.28TIGER for win9x/winXP',
'版权信息', MB_ICONINFORMATION + MB_OK);
end;

procedure TNPX.NploopClick(Sender: TObject);
begin
if ploop=true then
begin
ploop:=false;

nPloop.hint:='当前循环状态:否';
end else
begin
ploop:=true;

nploop.hint:='当前循环状态:是';
end;

end;

procedure TNPX.clearFilelistClick(Sender: TObject);
begin
NPmusic_list.Items.Clear;
NPmusic_list2.Items.Clear;
end;

end.


----------------------------------------------
-
作者:
男 waterstone (waterstone) ★☆☆☆☆ -
盒子活跃会员
2004/1/28 2:10:12
1楼: hao!
----------------------------------------------
我来自农村广阔的田野我的每一个动作都很夸张http://waterstone.51r.com
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行76.17188毫秒 RSS