Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.10.2010, 22:27
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию перемотка

как реализовать перемотку музыки тоесть внизу шкала и в ней двигается ну скажем кружок по мере проигрывания музыки, нужно чтобы его можно было перемотать в нужный момент
Ответить с цитированием
  #2  
Старый 10.10.2010, 22:27
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

"передвинуть"
Ответить с цитированием
  #3  
Старый 10.10.2010, 22:33
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Ну это зависит от компонента, или библиотеки, которую ты используешь (медиа плеер, или же басс, например).

Если используешь MediaPlayer, то у него есть свойство Position, его и надо изменять (например в TrackBar1.Change)...
Пример:
Код:
  TrackBar OnChange
   MediaPlayer1.Position := MediaPlayer.Position + 1;
// так же у Media Player есть свойства TrackLength, и Length, которые позволят узнать длину песни (видео)
__________________
Помогаю за Спасибо

Последний раз редактировалось v1s2222, 10.10.2010 в 22:37.
Ответить с цитированием
  #4  
Старый 10.10.2010, 22:49
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

MediaPlayer использую, порпобую
Ответить с цитированием
  #5  
Старый 10.10.2010, 23:01
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

Код:
procedure TfrmMyBrowser.TrackBar2Change(Sender: TObject);
begin
TrackBar2.Max := TrackLength;
MediaPlayer1.Position := MediaPlayer.Position + 1;
end;

неопознает выделеенное красным Undeclared identifier
Ответить с цитированием
  #6  
Старый 10.10.2010, 23:30
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Если не опазнает, значит не объявил их. А насчет TrackLength - пиши так:
Код:
MediaPlayer1.TrackLength[i];
// PS добавь на форму сам MediaPlayer1

ЗЫ На статейку, почитай...
http://www.beluch.ru/progr/100comp/4_8_3.htm
А также тута:
http://www.realcoding.net/article/view/1316
__________________
Помогаю за Спасибо
Ответить с цитированием
  #7  
Старый 11.10.2010, 00:19
Аватар для ryderx34
ryderx34 ryderx34 вне форума
Активный
 
Регистрация: 22.01.2010
Сообщения: 211
Версия Delphi: 7, 2010
Репутация: 1349
По умолчанию

Цитата:
Сообщение от ALexandr555
Код:
procedure TfrmMyBrowser.TrackBar2Change(Sender: TObject);
begin
TrackBar2.Max := TrackLength;
MediaPlayer1.Position := MediaPlayer.Position + 1;
end;
Код:
TrackBar2.Max := MediaPlayer1.TrackLength;
это делается один раз, в начале воспроизведения

а позиция задаётся так:
Код:
TfrmMyBrowser.TrackBar2Change(Sender: TObject);
begin
  MediaPlayer1.Position := TrackBar2.Position;
end;
Ответить с цитированием
  #8  
Старый 17.11.2010, 21:16
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

если все же перемещать 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;
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #9  
Старый 17.11.2010, 21:35
Edos Edos вне форума
Прохожий
 
Регистрация: 17.11.2010
Сообщения: 6
Репутация: 10
По умолчанию

Пасибо большое!... завтра опробую и сообщу результат... о, раз уж на то пошло если кто знает как image вращять по трем осям???? ну вот что-что а вот тут я даже не знаю с какой стороны подойти... если не лень мож кто знает, подскажите плз
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter