Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2013, 15:42   #1
D!zel
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 74
По умолчанию Перемотка при воспроизведении видео

Собственно, есть TrackBar, который визуально отображает отметку времени.
Нужно сделать перемотку при изменении позиции этого TrackBar-а.

Сложность заключается в том, что обработав событие OnChange TrackBar-а на перемотку - при воспроизведении файла он начинает "подтормаживать", то есть пытается перематываться, ведь параллельно позиция этого TrackBar-а изменяется (каждую секунду переходит на показываемую отметку времени - кадр).

Можно как-нибудь повесить и перемотку и это самое "отображение" отметки времени на одном TrackBar-е, но при этом не помешать работе ни одной из перечисленных функций?
D!zel вне форума Ответить с цитированием
Старый 05.03.2013, 13:55   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Вариант глюкавый, топорный. Я особо не заморачивался. Но мысль, думаю, понятна
Код:
var
  PauseFlag: Integer = 2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  MediaPlayer1.Open;
  TrackBar1.Max := MediaPlayer1.Length;
  TrackBar1.Position := 1;
  Timer1.Enabled := False;
  Timer1.Interval := 500;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc (PauseFlag);
  if PauseFlag > 1 then begin
    MediaPlayer1.Play;
    Timer1.Enabled := False;
  end;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  MediaPlayer1.Pause;
  PauseFlag := 0;
  MediaPlayer1.Position := TrackBar1.Position;
  Label1.Caption := IntToStr (MediaPlayer1.Position) + ' из ' + IntToStr (MediaPlayer1.Length);
  Timer1.Enabled := True;
end;

Последний раз редактировалось Sibedir; 05.03.2013 в 14:17.
Sibedir вне форума Ответить с цитированием
Старый 05.03.2013, 15:54   #3
D!zel
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 74
По умолчанию

Сейчас все-таки решил проверить - работает) Конечно взял только саму идею - использовать переменную в качестве флага для остановки воспроизведения, т.к. не работаю ни с TMediaPlayer ни с Timer

Спасибо большое, Sibedir!

Последний раз редактировалось D!zel; 05.03.2013 в 16:47.
D!zel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ретранслятор видео. Перемотка. taurii PHP 0 21.02.2012 19:31
Бегущая строка при воспроизведении музыки. munthrekosh Мультимедиа в Delphi 2 19.02.2012 06:46
Бегущая строка при воспроизведении музыки. munthrekosh Общие вопросы Delphi 0 18.02.2012 17:16
Ошибка при воспроизведении элемента ListView .Phoenix Мультимедиа в Delphi 3 22.03.2010 20:36
траблы при воспроизведении макроса invester Microsoft Office Excel 0 28.01.2010 21:41