我想用TrackBar控制MEDIAPLAYER的播放进度,应该怎么办?我怎么搞都不好使:((0分)

  • 主题发起人 主题发起人 nakoka
  • 开始时间 开始时间
N

nakoka

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用TrackBar控制MEDIAPLAYER的播放进度,应该怎么办?我怎么搞都不好使:(
 
MediaPlayer的速度能控制吗?
 
怎么不好使,无非就是length,position的设定
 
trackbar 没有onclick事件,控制播放进度不方便,建议用activx的trackbar控件,
事件多一些。
 
用ONCHANGE呀
 
我用了!但是不行
请告诉我应该在ONCHANGE事件里应该怎么写?多谢!
 
好像是MediaPlayer1.Position := TRACKBAR1.POSITION
 
是啊!然后等待很长时间,就像程序死掉一样,然后才跳到我需要的位置,这应该怎么解决呢???
 
把文件烤到硬盘上
 
用SLIGER控件!
 
SLIGER控件??
细说
 
我也试过好久了,也问了好多人,但是都没有好的回答。
建议你还是用scrollbar来控制吧,在scrollbar的onscroll事件里write:
mediaplayer1.pause;
mediaplayer1.position:=scrollbar1.position;
mediaplayer1.play;
 
当然,之前要设置:
scrollbar1.max:=mediaplayer1.length;
scrollbar1.position:=0;
 
改一改控件就行了,加个onmousedown,onmouseup事件
 
我用了trackbar的startdrag和dragend控制。还行。
 
就用我的就行了,啥都不要,startdrag和dragend都和拖动滑块没什么关系
 
用timer控件
//显示播放或录制的时间
procedure tform1.shownowtimeorframe;
var
nowtime,alltime:LongInt;
minutes,seconds:integer;
begin

//if showformat=timeformat then

// begin

with mediaplayer1do

begin

timeformat:=tfmilliseconds;
nowtime:=position;
alltime:=length;
minutes:=nowtime div 60000;
seconds:=(nowtime-60000*minutes) div 1000;
label1.Caption:=inttostr(minutes)+'分'+inttostr(seconds)+'秒';
minutes:=alltime div 60000;
seconds:=(alltime-60000*minutes) div 1000;
label2.Caption:=inttostr(minutes)+'分'+inttostr(seconds)+'秒';
end;

end;

//改变滑动条位置及显示的时间
procedure TForm1.Timer1Timer(Sender: TObject);
begin

if mediaplayer1.Mode=mpplaying then

begin

shownowtimeorframe;
trackbar1.Position:=mediaplayer1.Position div 1000;BtOPen.Enabled:=true;
end;


if mediaplayer1.Mode=mprecording then

begin

shownowtimeorframe;
trackbar1.Position:=mediaplayer1.Position div 1000;
end;

if mediaplayer1.Mode=mpstopped then


shownowtimeorframe;
end;



 
后退
顶部