Четверг, 25.04.2024, 11:48
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Delphi » Создание mp3 плеера на Delphi » Перемотка песен
Перемотка песен
HaniganДата: Среда, 13.06.2012, 07:38 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Статус: Offline
Здравствуйте,как можно сделать перемотку песен? вместо скроллбара стоит прогрессбар. в процедуре MouseActivate стоит код: BASS_ChannelSetPosition(Channel, sprogressbar1.Position, 0); но при нажатии позицию он не меняет.
 
xaramamburuДата: Среда, 13.06.2012, 13:51 | Сообщение # 2
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Hanigan,
В процедуре procedure TForm_Player.Player;
в место:
//полоса проигрывания
scrollbar1.Min:=0; //минимальное значение
scrollbar1.Max:=bass_ChannelGEtLength(Channel, 0)-1;//максимальное значение
пишем:
ProgressBar1.Min:=0;
ProgressBar1.Max:=bass_ChannelGEtLength(Channel, 0)-1;

далее в событии OnMouseDown прогресс бара пишем:

procedure TForm_player.ProgressBar1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
p: real;
begin
if mode<>play then Exit;
p:=ProgressBar1.Max/ProgressBar1.Width;
ProgressBar1.Position:=round(x*p);
bass_ChannelSetPosition(Channel, ProgressBar1.Position, 0);
end;

аналогично в событии OnMouseMove прогресс бара пишем:

procedure TForm_player.ProgressBar1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
p: real;
begin
if mode<>play then Exit;
if ssleft in shift then //если нажата левая кнопка мыши
begin
p:=ProgressBar1.Max/ProgressBar1.Width;
ProgressBar1.Position:=round(x*p);
bass_ChannelSetPosition(Channel, ProgressBar1.Position, 0);
end;
end;

ну и в процедуре procedure TForm_player.Timer1Timer(Sender: TObject);
в место:
//устанавливаем позицию scrollbar в зависимоти от позиции трека
scrollbar1.Position:=bass_channelGetPosition(channel,0);
пишем:
ProgressBar1.Position:=bass_channelGetPosition(channel,0);

Думаю, что все, должно работать.)))))))))
 
ThePro94Дата: Пятница, 06.07.2012, 18:56 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
У меня вопрос...заменил ScrollBar на TrackBar(а точнее AdvTrackBar, из TMS Component Pack). При воспроизведении все работает почти как надо, но сама песня сильно тормозит. В чем может быть проблема?
И при закрытии плеера на пару секунд воспроизведение становится нормальным.


Сообщение отредактировал ThePro94 - Пятница, 06.07.2012, 19:02
 
xaramamburuДата: Пятница, 06.07.2012, 21:03 | Сообщение # 4
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
ThePro94,
Попробуй запустить на другом компе желательно с другой операционкой. Бывает такое, что один и тот же компонент по разному работает под различными ОС.))))
 
ThePro94Дата: Пятница, 06.07.2012, 21:04 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Quote (xaramamburu)
ThePro94,
Попробуй запустить на другом компе желательно с другой операционкой. Бывает такое, что один и тот же компонент по разному работает под различными ОС.))))

Такой возможности пока нет.. А как нибудь исправить такое можно? Или может я код не правильно написал...
 
xaramamburuДата: Пятница, 06.07.2012, 21:23 | Сообщение # 6
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
ThePro94,
Я не утверждаю, что это из-за ОС, а просто говорю, что такое бывает. Попробуйте за комментировать все строки, связанные с вашим трекбаром, чтоб окончательно убедиться, что дело именно в нем.)))))
 
Filo$oFДата: Пятница, 06.07.2012, 21:38 | Сообщение # 7
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 2
Статус: Offline
ThePro94
Ещё могу посоветовать сделать всё заново. smile
У меня была проблемма с richedit - страшные висы (при попытке прокрутить текст комп зависал на несколько минут) - но когда сделал всё с нуля висы исчезли.
 
ThePro94Дата: Пятница, 06.07.2012, 21:55 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Quote (Filo$oF)
ThePro94
Ещё могу посоветовать сделать всё заново.
У меня была проблемма с richedit - страшные висы (при попытке прокрутить текст комп зависал на несколько минут) - но когда сделал всё с нуля висы исчезли.

Что именно с нуля? Весь плеер или только трекбар?

Добавлено (06.07.2012, 21:55)
---------------------------------------------

Quote (xaramamburu)
Попробуйте за комментировать все строки, связанные с вашим трекбаром, чтоб окончательно убедиться, что дело именно в нем.)))))

Все дело в нем. Без него все работает.
 
Filo$oFДата: Пятница, 06.07.2012, 21:58 | Сообщение # 9
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 2
Статус: Offline
ThePro94
Весь проект.
 
ThePro94Дата: Пятница, 06.07.2012, 22:42 | Сообщение # 10
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Quote (Filo$oF)
ThePro94
Весь проект.

Это точно нет.. сделано много, все делать сначала не хочу.
 
Форум » Delphi » Создание mp3 плеера на Delphi » Перемотка песен
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2024Конструктор сайтов - uCoz