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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 21:47   #1
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию Музыка, Timer и их спор при игре...

Проблема в следующем. В Timer1.Time записаны операторы. С их помощью можно контролить воспроизведением музыки(перемотка). Проблема вот в чем, во время игры музыка реальным образом тормозит коверкается, если в timer'е что-то написано, когда удаляю операторы получению позиции музыки в байтах то все нормально. Как решить данную проблему? Кста, раньше такого не было. Сейчас вдруг началось....Код просто скопировал со старого проекта.
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 22.03.2010, 22:37   #2
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Что за операторы? На сколько я знаю, таймер не всегда точен. Выложите участки глючного кода. ))
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 23.03.2010, 01:01   #3
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Как показала практика дело не в таймере )) дело в управлении элементом, который показывает полосы продолжительности
Код:
procedure TForm1.TrackBar1Change(Sender: TObject);
var pos: double; pos_2: int64;
begin
pos:=Trackbar1.Position;
pos_2:=BASS_ChannelSeconds2Bytes(a,pos);
Bass_ChannelSetPosition(a,pos_2,bass_pos_byte)
end;
Вот сам код, когда его вписываю, сразу слышны "тормоза". Тыкаю по любой позиции и полная фигня, поет тормозя. Хотя если поставить ScrollBar вместо trackbar, то не тормозит, но хотелось бы исп-ть track bar.
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 23.03.2010, 07:33   #4
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Лучше написать свои компонент, который может не реагировать на немедленную смену значении(position) вот поэтому тормоза и идут.
Как раз в ScrollBar'е такое реализовано, поэтому все нормально
ZuBy вне форума Ответить с цитированием
Старый 23.03.2010, 12:42   #5
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

ZuBy вот оно как...Тогда как же мне такое реализовать в trackbar?
В общем, щас я просмотре в Vcl чем отличаются события change в trackbar't и scrollbar'e практически ничем, но в scrollbar'e там событие унаследовано. Вот только родительское событие не нашёл. Как мне реализовать чтоб в трекбаре нормально музыка выбиралась?
Всё гениальное - просто!

Последний раз редактировалось .Phoenix; 23.03.2010 в 13:08.
.Phoenix вне форума Ответить с цитированием
Старый 23.03.2010, 17:19   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

можно сделать так.
ставишь на паузу поток, меняешь позицию и опять запускаешь поток.
вот так никаких тормозов не будет.
ZuBy вне форума Ответить с цитированием
Старый 23.03.2010, 18:25   #7
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Очень хотелось бы, чтобы в моей программе было всё как обычно полагается. Т.е. есть играет музыка, я передвигаю бегунок на 50 секунду или какую-нибудь другую желаемую и плеер играет именно ту позицию. Как уст-ть и делать свой компонент я прочитал, но ума не приложу что писать - сам код...
Неужели никто не может подкинуть идею или код
Всё гениальное - просто!

Последний раз редактировалось .Phoenix; 23.03.2010 в 18:29.
.Phoenix вне форума Ответить с цитированием
Старый 23.03.2010, 21:26   #8
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Ааааа... Вспомнил... Было такое!!! Проще тебе использовать ScrollBar. У него есть интересное событие OnScroll, в котором можно получить код ScrollCode. Тебе это поможет! Помню избавился от этой проблемы.
Тот же BASS и ListBox...
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 23.03.2010, 21:43   #9
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от notHaker Посмотреть сообщение
Ааааа... Вспомнил... Было такое!!! Проще тебе использовать ScrollBar. У него есть интересное событие OnScroll, в котором можно получить код ScrollCode. Тебе это поможет! Помню избавился от этой проблемы.
Тот же BASS и ListBox...
вообще то я это выше писал)
>>Как раз в ScrollBar'е такое реализовано, поэтому все нормально
ZuBy вне форума Ответить с цитированием
Старый 23.03.2010, 21:51   #10
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

ну вообщем лови, думаю разберешься.
Вложения
Тип файла: zip ZMTrackbar.zip (2.1 Кб, 22 просмотров)
ZuBy вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фоновая музыка при создании формы JNLYSk Мультимедиа в Delphi 3 13.09.2009 20:08
Спор!!! Sk!f Свободное общение 1 02.06.2009 18:41
Серьезный спор по IP Wenders Свободное общение 0 15.04.2009 04:54
Музыка при сообщениях delphin100 Мультимедиа в Delphi 7 08.05.2008 15:21