用 delphi 做媒体播放器时,遇到一个问题,已经打开了一个*.avi 文件,再重新打开一个*.avi 时出错,不知为什么?具体代码如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, MPlayer;type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Panel1: TPanel;
OpenButton: TButton;
PlayButton: TButton;
PauseButton: TButton;
RewindButton: TButton;
CloseBotton: TButton;
OpenDialog1: TOpenDialog;
procedure OpenButtonClick(Sender: TObject);
procedure PlayButtonClick(Sender: TObject);
procedure PauseButtonClick(Sender: TObject);
procedure RewindButtonClick(Sender: TObject);
procedure CloseBottonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Types;{$R *.dfm}procedure TForm1.OpenButtonClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
MediaPlayer1.Close;
MediaPlayer1.FileName:=OpenDialog1.FileName;
MediaPlayer1.Open;
if ExtractFileExt(OpenDialog1.FileName)='.avi' then
begin
MediaPlayer1.Display:=Panel1;
MediaPlayer1.DisplayRect:=Rect(0,0,Panel1.Width,Panel1.Height);
end;
PlayButton.Enabled:=True;
PauseButton.Enabled:=False;
RewindButton.Enabled:=False;
end;
end;procedure TForm1.PlayButtonClick(Sender: TObject);
begin
if MediaPlayer1.Mode=mpPaused then
begin
MediaPlayer1.Resume;
end
else
MediaPlayer1.Play;
PlayButton.Enabled:=false;
RewindButton.Enabled:=true;
PauseButton.Enabled:=true;
end;procedure TForm1.PauseButtonClick(Sender: TObject);
begin
MediaPlayer1.Pause;
PlayButton.Enabled:=true;
RewindButton.Enabled:=false;
PauseButton.Enabled:=false;
end;procedure TForm1.RewindButtonClick(Sender: TObject);
begin
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;procedure TForm1.CloseBottonClick(Sender: TObject);
begin
MediaPlayer1.Close;
Close;
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, MPlayer;type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Panel1: TPanel;
OpenButton: TButton;
PlayButton: TButton;
PauseButton: TButton;
RewindButton: TButton;
CloseBotton: TButton;
OpenDialog1: TOpenDialog;
procedure OpenButtonClick(Sender: TObject);
procedure PlayButtonClick(Sender: TObject);
procedure PauseButtonClick(Sender: TObject);
procedure RewindButtonClick(Sender: TObject);
procedure CloseBottonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Types;{$R *.dfm}procedure TForm1.OpenButtonClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
MediaPlayer1.Close;
MediaPlayer1.FileName:=OpenDialog1.FileName;
MediaPlayer1.Open;
if ExtractFileExt(OpenDialog1.FileName)='.avi' then
begin
MediaPlayer1.Display:=Panel1;
MediaPlayer1.DisplayRect:=Rect(0,0,Panel1.Width,Panel1.Height);
end;
PlayButton.Enabled:=True;
PauseButton.Enabled:=False;
RewindButton.Enabled:=False;
end;
end;procedure TForm1.PlayButtonClick(Sender: TObject);
begin
if MediaPlayer1.Mode=mpPaused then
begin
MediaPlayer1.Resume;
end
else
MediaPlayer1.Play;
PlayButton.Enabled:=false;
RewindButton.Enabled:=true;
PauseButton.Enabled:=true;
end;procedure TForm1.PauseButtonClick(Sender: TObject);
begin
MediaPlayer1.Pause;
PlayButton.Enabled:=true;
RewindButton.Enabled:=false;
PauseButton.Enabled:=false;
end;procedure TForm1.RewindButtonClick(Sender: TObject);
begin
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;procedure TForm1.CloseBottonClick(Sender: TObject);
begin
MediaPlayer1.Close;
Close;
end;end.
解决方案 »
- 问一下 ¦ 这个字符在Delphi 中怎么打出来
- spcom 在筆記本電腦上收不到數據,但在另一台試机上就行,不知何原因.已經困擾我一個星期了,請大家幫忙!
- 怎么改变delphi 应用程序图标即.exe的图标?
- 怎样读取一个任意的二进制文件
- 如何防止DeDe反编译,除了加壳方法。怎样检测内存中有没有DEDE?除了列举名称方法。
- 急问:如何在弹出窗口显示完毕,马上刷新其MainFrame,在线等!
- 请帮忙分析一下,“vcmd.exe应用程序错误”会是由什么引起的?
- 谁有产生泊松随机变量的算法
- 关于如何把图片放到数据库里面????
- 调试程序时经常死机?!
- 妈妈,女儿对不起你
- 关于使用PChar时编译器发出的警告
application-definiendum exception (code 0x0000008) at 0x77f5111b'.process stopped Use step or run to continue.
你将 MediaPlayer1.Close;放在if OpenDialog1.Execute then之前试试,按照常理来说这个代码应该没有什么错误啊