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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2011, 21:00   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию TrackBar Перемотка

Облазил много форумов, все примеры практически только на Delphi, ну да ладно Delphi это не проблема, в основном примеры иллюстрировали со ScrollBar меня же интересует TrackBar.

Вообщем здесь перевожу текущую проигрываемую позицию времени трека из байт в секунды ну и соответственно передаю TrackBar'у.
Код:
void __fastcall TMainForm::TrackTimeTimer(TObject *Sender) {
 TrackBar1->Position = Round(BASS_ChannelBytes2Seconds(hPlayStream, BASS_ChannelGetPosition(hPlayStream, 0)));
 Label1->Caption = TrackBar1->Position;
}
int TrackCurrPos;

Ну вот здесь у меня никак
Код:
void __fastcall TMainForm::TrackBar1Change(TObject *Sender) {
 TrackCurrPos = Round(BASS_ChannelBytes2Seconds(hPlayStream, BASS_ChannelGetPosition(hPlayStream, 0)));

 // Если позиция TrackBar не равна текущему времени проигрываемого трека
 // Изменить позицию трека на позицию TrackBar, иначе просто пропустить
 if (TrackBar1->Position != TrackCurrPos) { 
  // Здесь у меня стопр, я уже что только не перепробовал...
  // Вообщем здесь я себе представляю что нужно преобразовать новое значение трек бара в байты, установить время трека в новую позицию в байтах
  // установленную позицию преобразовать опять в секунду и передать на трек бар.
  // но у меня не выходит это сделать :(
 }

 Label2->Caption = TrackBar1->Position;
}

Последний раз редактировалось coNsept; 13.07.2011 в 22:06.
coNsept вне форума Ответить с цитированием
Старый 13.07.2011, 22:07   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Непонятно, в чем же вопрос?
Может в том, что BASS_ChannelBytes2Seconds возвращает double?
EUGY вне форума Ответить с цитированием
Старый 14.07.2011, 05:59   #3
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Уже разобрался сам но все равно спасибо за отклик, вообщем если кому пригодиться.

Код:
void __fastcall TMainForm::TrackTimeTimer(TObject *Sender) {
 TrackBar->Position = Round(BASS_ChannelBytes2Seconds(hPlayStream, BASS_ChannelGetPosition(hPlayStream, 0)));
}

bool isRewind;
void __fastcall TMainForm::TrackBarChange(TObject *Sender) {
 isRewind = (TrackBar->Position != Round(BASS_ChannelBytes2Seconds(hPlayStream, BASS_ChannelGetPosition(hPlayStream, 0))));
 if (isRewind) {
  BASS_ChannelSetPosition(hPlayStream, BASS_ChannelSeconds2Bytes(hPlayStream, TrackBar->Position), 0);
 }
}
coNsept вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FilterGraph. перемотка AmbaQ Мультимедиа в Delphi 4 27.11.2010 01:35
Перемотка (прокрутка) в плеере NBSTUDIO Мультимедиа в Delphi 12 08.05.2009 18:37
перемотка в mp3 плеере Mazaxaka Мультимедиа в Delphi 21 27.02.2009 01:09
MediaPlayer перемотка с TrackBar Kaifun Мультимедиа в Delphi 2 09.12.2008 19:24
Перемотка в TMediaPlayer Kn793 Компоненты Delphi 0 10.07.2008 11:02