如何让mediaplayer控件实现多个文件连续播放?急 如何让mediaplayer实现多个文件连续播放,我用的timer时间控制,但是当播放完一个后如果转入第二个中间会有打哏的现象 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚好做过,我是这样实现的:mediaplayer1.close;mediaplayer1.filename('文件1');mediaplayer1.open;mediaplayer1.play;sleep(mediaplayer1.length);mediaplayer1.close;mediaplayer1.filename('文件2');mediaplayer1.open;mediaplayer1.play;sleep(mediaplayer1.length); 在窗体上添加一个ListBox、Timer、OpenDialog、MediaPlay、PopupMenu将Timer1的Enable属性设为Falseunit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, MPlayer, ExtCtrls;type TForm1 = class(TForm) Timer1: TTimer; MP: TMediaPlayer; ListBox1: TListBox; PopupMenu1: TPopupMenu; OpenDialog1: TOpenDialog; N1: TMenuItem; N2: TMenuItem; procedure N2Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure N1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure ListBox1DblClick(Sender: TObject); private opened: Boolean; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.N2Click(Sender: TObject);begin MP.Close; Timer1.Enabled:=False; Close;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin MP.Close; Timer1.Enabled:=False; Close;end;procedure TForm1.N1Click(Sender: TObject);var i:integer;beginopendialog1.Options:=[ofHideReadOnly,ofEnableSizing,ofallowmultiselect];if OpenDialog1.Execute thenbeginfor i:=0 to opendialog1.Files.Count-1 dobeginlistbox1.items.add(OpenDialog1.Files.Strings[i]);listbox1.Selected[i]:=true;end;end;end;procedure TForm1.Timer1Timer(Sender: TObject);var a,b,c,up:integer;begin mp.TimeFormat := tfHMS; {小时数、分钟数和秒数被压缩到一个四字节整数中。 从最低有效字节到最高有效字节,这四个数分别是: 小时数(最低有效字节) 分钟数 秒数 } a:=MP.Length; b:=mp.Position; c:=a-b; if c=0 then begin up:=listbox1.ItemIndex; up:=up+1; if up<listbox1.Count then begin mp.Filename :=listbox1.Items[up]; listbox1.Selected[up]:=true; mp.Open; mp.Play; opened:=true; end else begin mp.Filename :=listbox1.Items[0]; listbox1.Selected[0]:=true; mp.Open; mp.Play; opened:=true; end; end;end;procedure TForm1.ListBox1DblClick(Sender: TObject);beginif listbox1.ItemIndex>-1 thenbeginmp.Filename :=listbox1.Items[listbox1.Itemindex];mp.Open;mp.Play;opened:=true;timer1.Enabled:=true;end;end;end. a:=MP.Length; //获取每首歌的长度b:=mp.Position; //当前播放的进度c:=a-b; delphi 怎么启动tomcat的startup.bat时隐藏dos黑框窗体 写注册表被劫持怎么办 新手求助:这个用什么控件? 为什么我的delphi6打开某一个文件.pas就会自动关闭? 货单套打的问题,各位大哥指导一下。 我现在主要不知道怎么循环读这个流,怎么判断文件结束?!流的写法取行数据比较奇怪,如果按流这样读我怎么像以前读文件那样判断我每行的 急,急,急 超难问题,逻辑表达式的变换。 介绍几个免费的delphi书籍和控件下载的网址 数据库别名配置 Insert的效率问题,在线等!!!仅有90分了!!! 散分!准备告别来了两年的delhi版本
mediaplayer1.close;
mediaplayer1.filename('文件1');
mediaplayer1.open;
mediaplayer1.play;
sleep(mediaplayer1.length);mediaplayer1.close;
mediaplayer1.filename('文件2');
mediaplayer1.open;
mediaplayer1.play;
sleep(mediaplayer1.length);
将Timer1的Enable属性设为False
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, MPlayer, ExtCtrls;type
TForm1 = class(TForm)
Timer1: TTimer;
MP: TMediaPlayer;
ListBox1: TListBox;
PopupMenu1: TPopupMenu;
OpenDialog1: TOpenDialog;
N1: TMenuItem;
N2: TMenuItem;
procedure N2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ListBox1DblClick(Sender: TObject);
private
opened: Boolean;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.N2Click(Sender: TObject);
begin
MP.Close;
Timer1.Enabled:=False;
Close;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MP.Close;
Timer1.Enabled:=False;
Close;
end;procedure TForm1.N1Click(Sender: TObject);
var
i:integer;
begin
opendialog1.Options:=[ofHideReadOnly,ofEnableSizing,ofallowmultiselect];
if OpenDialog1.Execute then
begin
for i:=0 to opendialog1.Files.Count-1 do
begin
listbox1.items.add(OpenDialog1.Files.Strings[i]);
listbox1.Selected[i]:=true;
end;
end;
end;procedure TForm1.Timer1Timer(Sender: TObject);
var a,b,c,up:integer;
begin
mp.TimeFormat := tfHMS;
{小时数、分钟数和秒数被压缩到一个四字节整数中。
从最低有效字节到最高有效字节,这四个数分别是:
小时数(最低有效字节)
分钟数
秒数
}
a:=MP.Length;
b:=mp.Position;
c:=a-b;
if c=0 then
begin
up:=listbox1.ItemIndex;
up:=up+1;
if up<listbox1.Count then
begin
mp.Filename :=listbox1.Items[up];
listbox1.Selected[up]:=true;
mp.Open;
mp.Play;
opened:=true;
end else
begin
mp.Filename :=listbox1.Items[0];
listbox1.Selected[0]:=true;
mp.Open;
mp.Play;
opened:=true;
end;
end;
end;procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
if listbox1.ItemIndex>-1 then
begin
mp.Filename :=listbox1.Items[listbox1.Itemindex];
mp.Open;
mp.Play;
opened:=true;
timer1.Enabled:=true;
end;
end;end.
b:=mp.Position; //当前播放的进度
c:=a-b;