|
#1
|
||||
|
||||
перемотка
как реализовать перемотку музыки тоесть внизу шкала и в ней двигается ну скажем кружок по мере проигрывания музыки, нужно чтобы его можно было перемотать в нужный момент
|
#2
|
||||
|
||||
"передвинуть"
|
#3
|
||||
|
||||
Ну это зависит от компонента, или библиотеки, которую ты используешь (медиа плеер, или же басс, например).
Если используешь MediaPlayer, то у него есть свойство Position, его и надо изменять (например в TrackBar1.Change)... Пример: Код:
TrackBar OnChange MediaPlayer1.Position := MediaPlayer.Position + 1; // так же у Media Player есть свойства TrackLength, и Length, которые позволят узнать длину песни (видео) Помогаю за Спасибо Последний раз редактировалось v1s2222, 10.10.2010 в 22:37. |
#4
|
||||
|
||||
MediaPlayer использую, порпобую
|
#5
|
||||
|
||||
Код:
procedure TfrmMyBrowser.TrackBar2Change(Sender: TObject); begin TrackBar2.Max := TrackLength; MediaPlayer1.Position := MediaPlayer.Position + 1; end; неопознает выделеенное красным Undeclared identifier |
#6
|
||||
|
||||
Если не опазнает, значит не объявил их. А насчет TrackLength - пиши так:
Код:
MediaPlayer1.TrackLength[i]; // PS добавь на форму сам MediaPlayer1 ЗЫ На статейку, почитай... http://www.beluch.ru/progr/100comp/4_8_3.htm А также тута: http://www.realcoding.net/article/view/1316 Помогаю за Спасибо |
#7
|
||||
|
||||
Цитата:
Код:
TrackBar2.Max := MediaPlayer1.TrackLength; а позиция задаётся так: Код:
TfrmMyBrowser.TrackBar2Change(Sender: TObject); begin MediaPlayer1.Position := TrackBar2.Position; end; |
#8
|
|||
|
|||
А как это сделать без использования трекбара???
В общем народ... срочняк надо всё это сделать без трекбара. вместо бегунка у меня компонент image с изображением бегунка, вместо трека у меня компонент image с изображением трека. мне это надо для того чтоб не испортить дизайн. тоесть ясно да что бегунок и трек я нарисовал в фотошопе...
вот я сижу второй час а думать голова устала. вот настрочил маханький код. он вроде работает, и этот бегунок движется на определённое количество пикселей в секунду соответствующих времени видео, и вроде перематывается тоже правильно, но он всё равно местами подглючивает вот код: это часть которая отвечает что бегунок двигался в такт с видео ну чтоб прошла секунда видео и он сдвинулся на общее кол-во пикселей деленное на длину видео и множеное на 60. : i:=mediaplayer1.Length; a:=i/60000; b:=688/(a*60); c:=c+b; image24.Left:=round(c); label31.Caption:=inttostr(round(c)); if m1=true then image24.Left:=Round(m+c); image25.Width:=image24.left; это часть отвечающая за перемотку: image24.Left:=x+image24.Left-10; o8:=688-image24.Left; o10:=(o8-688)*(-1); o11:=o10*(mediaplayer1.Length/1376); mediaplayer1.Position:=round(o11); c:=mediaplayer1.Position/1376; вот это вроде пашет но не фонтан конечно... так- что если кому не лень разберитесь плиз... |
#9
|
||||
|
||||
если все же перемещать image:
Код:
var pressed:boolean; tx:integer; ... procedure TForm1.Panel2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Pressed:=true; MediaPlayer1.Pause; tx:=X; end; procedure TForm1.Panel2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if Pressed then begin Panel2.Left:=Panel2.Left+x-tx; MediaPlayer1.Position:=Round(MediaPlayer1.Length*(Panel2.Left/Panel1.Width)); tx:=x; end; end; procedure TForm1.Panel2MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Pressed:=false; MediaPlayer1.Play; end; procedure TForm1.Timer1Timer(Sender: TObject); var r:single; begin if MediaPlayer1.Length>0 then r:=MediaPlayer1.Position/MediaPlayer1.Length else r:=0; Panel2.Left:=Round({Image1.Left +} r*Panel1.Width); //раскомментить для TImage'й end; Код:
procedure TForm1.Timer1Timer(Sender: TObject); var r:single; begin ... with PaintBox3.Canvas do begin Pen.Style:=psSolid; Brush.Color:=clBtnFace; Rectangle(0, 0, PaintBox3.Width, PaintBox3.Height); //контур Pen.Style:=psClear; if BP.GetLength>0 then r:=BP.GetPos/BP.GetLength else r:=0; Brush.Color:=clRed; Rectangle(1, 1, Round(PaintBox3.Width*r), PaintBox3.Height); //заливка end; ... end; РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |
#10
|
|||
|
|||
Пасибо большое!... завтра опробую и сообщу результат... о, раз уж на то пошло если кто знает как image вращять по трем осям???? ну вот что-что а вот тут я даже не знаю с какой стороны подойти... если не лень мож кто знает, подскажите плз
|