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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2006, 09:09   #1
strannik
python developer
Пользователь Подтвердите свой е-майл
 
Аватар для strannik
 
Регистрация: 30.11.2006
Сообщений: 81
По умолчанию Как реализовать перемещение ползунка при проигрывании mp3 файла компонент mediaplayer, в нужную позицию?

Народ - помогите пожалуйста разобратся с трекбаром - пишу медиаплеер - при проигрывании mp3 файла трекбар плавно передвигается (на таймер ложу trackbar1.position:=mediaplayer1.po sition)- вопрос - как реализовать перемещение ползунка (например в середину песни) - причем ползунок должен оставаться в перемещаемом положении и продолжать перемещение к концу. Может где-нибудь почитать про это можно.
Заранее спасибо.
Границы расширяет тот, кто выходит за них.
strannik вне форума Ответить с цитированием
Старый 05.12.2006, 19:40   #2
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Если считать, что цена деления и того, и другого одинаковы, то
при попытке перемещения ползунка делать можно так:

mediaplayer1.position:=trackbar1.po sition;
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Старый 06.12.2006, 23:17   #3
VDLab
Embedder
Пользователь
 
Аватар для VDLab
 
Регистрация: 01.11.2006
Сообщений: 68
По умолчанию

Ни в коем случае! Иначе плеер или зависнет или подвесит систему. Я делал так:
Код:
 
 procedure TVDplayer.TrackChange(Sender: TObject);
begin
 if track.Position > muz.Position+1000 then
 begin
  muz.Position:=track.Position;
  muz.Play;
  bplay.Caption:='pause';
  bstop.Enabled:=true;
 end
 else
 if track.Position < muz.Position-1000 then
 begin
  muz.Position:=track.Position;
  muz.Play;
  bplay.Caption:='pause';
  bstop.Enabled:=true;
 end;
end;
интервал таймера-500мс
Код:
 
procedure TVDplayer.Timer1Timer(Sender: TObject);
begin
 track.Position:=muz.Position; 
...
кому интересно, есть недоделанный исходник(используется компонент TBassPlayer)
Вложения
Тип файла: zip VDplayer.zip (523.6 Кб, 39 просмотров)
[SHIFT] вправо, [SHIFT] влево считается [ESCAPE]ом и карается REBOOTом!
VDLab вне форума Ответить с цитированием
Старый 11.12.2006, 09:19   #4
strannik
python developer
Пользователь Подтвердите свой е-майл
 
Аватар для strannik
 
Регистрация: 30.11.2006
Сообщений: 81
По умолчанию

Спасибо всем ответившим! Помогло - разобрался!
Границы расширяет тот, кто выходит за них.
strannik вне форума Ответить с цитированием
Старый 11.12.2006, 17:00   #5
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Цитата:
Сообщение от strannik Посмотреть сообщение
Спасибо всем ответившим! Помогло - разобрался!
можеш написать как ты это сделал? или выложить исходники? просто я столкнулся с этой проблемой и не могу решить
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 12.12.2006, 05:23   #6
strannik
python developer
Пользователь Подтвердите свой е-майл
 
Аватар для strannik
 
Регистрация: 30.11.2006
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Toxa Посмотреть сообщение
можеш написать как ты это сделал? или выложить исходники? просто я столкнулся с этой проблемой и не могу решить
По аналогии с кодом который предложил VDLab.
Посмотри:

procedure TForm1.Trackbar1Change(Sender: TObject);
begin
if trackbar1.position > mediaplayer1.position+1000 then
begin
mediaplayer1.position:=trackbar1.po sition;
mediaplayer1.Play;
...
end
else
if trackbar1.position < mediaplayer1.position-1000 then
begin
mediaplayer1.Position:=trackbar1.po sition;
mediaplayer1.Play;
...
end;
end;

Да и еще:

procedure TForm1.Timer1Timer(Sender: TObject);
...
trackbar1.position:=mediaplayer1.po sition;
...
end;

На таймер я ложил интервал в 100мс.
Границы расширяет тот, кто выходит за них.
strannik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
метод вставки в нужную позицию; компонент ListView studenth Общие вопросы C/C++ 2 09.04.2013 13:28
Перемещение формы за компонент Zeraim Общие вопросы Delphi 2 20.05.2008 09:26
Помогите! Как реализовать перемещение панель GroupControl с помощью мыши. Slavon Общие вопросы .NET 0 14.05.2008 13:49
прочитать из тестового файла определенную инфу и вынести её в мемо memo1 oleg kutkov Общие вопросы Delphi 3 11.06.2007 10:20