如何有delphi自带的mediaplayer播放dvd(100分)

  • 主题发起人 sunsunsun2002
  • 开始时间
S

sunsunsun2002

Unregistered / Unconfirmed
GUEST, unregistred user!
已安装了divx及ac3,用微软的mediaplayer播放完全可以,但用delphi自带的mediaplayer
播放只有图象没有声音,为什么?如何解决??多谢!!!
 
要实现播放功能,要借助Windows MCI接口,通过MediaPlayer控件直接用Windows MCI的各种功能。
 
林中水滴:
好美的名字。可以说详细点吗?
Windows MCI的各种功能?可以用delphi自带的mediaplayer控件调用?应调用的是哪些功能
呢?用delphi自带的mediaplayer播放出不来声音只出图象是为什么呢?
 
MCI的各种功能你可以到MSDN上查阅。
mediaplayer控件本身就是调用MCI开发的。
我不知你讲的ac3是什么。不过我装了神龙dvd解压卡后,图象就默认输出到TV了。
自已找找原因吧。
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, MPlayer, jpeg;

type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
OpenDialog1: TOpenDialog;
Timer1: TTimer;
Label1: TLabel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public

{ Public declarations }
end;


var
Form1: TForm1;

endposition:integer;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

opendialog1.FileName:='*.avi';
if opendialog1.Execute then

begin

mediaplayer1.Close;
mediaplayer1.filename:=opendialog1.filename;
label1.caption:='当前播放文件:'+Extractfilename(opendialog1.filename);
mediaplayer1.open;
mediaplayer1.next;
endposition:=mediaplayer1.position;
mediaplayer1.rewind;
button2.enabled:=true;
button3.enabled:=false;
button4.enabled:=false;
end;

end;


procedure TForm1.Button2Click(Sender: TObject);
begin

if mediaplayer1.mode=mppaused then

begin

mediaplayer1.Resume;
end
else

begin

mediaplayer1.play;
end;

button4.Enabled:=true;
button3.enabled:=true;
timer1.Enabled:=true;
end;


procedure TForm1.Button3Click(Sender: TObject);
begin

mediaplayer1.Pause;
button3.Enabled:=false;
button4.enabled:=false;
end;


procedure TForm1.Button5Click(Sender: TObject);
begin

mediaplayer1.Rewind;
mediaplayer1.Play;
end;


procedure TForm1.Button4Click(Sender: TObject);
begin

mediaplayer1.close;
close;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin

if mediaplayer1.position=endposition then

begin

mediaplayer1.rewind;
mediaplayer1.play;
end;

end;


end.


你运行一下试试吧
 
cbdiy:ac3是解码器。我没有装神龙dvd解压卡,没有试过图象是否可以默认输出到TV,
难道不可以吗?
 
林中水滴:
我试过你的程序了,还是只有图象没有声音:(
 
不可能的
:)
不会是你的声卡有问题吧

试用其他现成的媒体播放器测试一下
 
林中水滴:
你是用你的程序播放dvd吗?
我的声卡没问题,已试过。
:(
 
林中水滴:
你用的什么解码,是divx吗?
 
噢,对不起,没有的,我刚才没看清楚问题。
你的问题我解决不了
:)
 
:)没有关系。
谢谢你。
 
如果软解压,你用的解码器错了,我建议你用“友立”或“ELECARD”的解码器,就可以播
放MPEG2格式的文件了,如果你要播放MPEG4格式的文件,那你安装个超解XP的MPEG4解码器
就可以了,如果你觉得用别人的不好,你也可自己用C++写一个。
 
顶部