Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
ВнизПроблема с мультимедиа таймером. Найти похожие ветки
← →
Alex_C (2007-11-15 08:24) [0]Прошу не перемещать мою тему в категорию для начинающих, т.к. тут все несколько сложнее, чем кажется на первый взгляд. :)
Возникла следующая интересная проблема: моя программа использует мульти-медиа таймер, т.к. ей необходимо с очень точными промежутками совершать определенные действия. Но возникла проблема - после смены звуковой карты промежутки стали неверными (не равными, а укороченными). Устанавливаем назад старую звуковую карту - все в норме. При чем сама программа звуковую карту не использует.
Вот такая вот проблема.
← →
sniknik © (2007-11-15 09:00) [1]> Прошу не перемещать мою тему в категорию для начинающих
в итоге он туда все одно попадет... имхо. либо "загнется" без ответов. сужу по "описательному" стилю вопроса, без кода и другой полезной информации. самое ему там место.
(начинающий может взяться и за сложную задачу... но "профи"/мастером это его не сделает...)
← →
Alex_C (2007-11-15 09:15) [2]Так я не привожу код именно по тому, что хочу понять - вообще возможно влияние звуковой карты на работу мультимедиа таймера в принципе, или это просто совпадение, вызванное несовместимостью оборудования?
← →
Reindeer Moss Eater © (2007-11-15 09:43) [3]была звуковуха 44100, а ты поставил какой-нить sblive 48000
← →
Alex_C (2007-11-15 09:54) [4]То Reindeer Moss Eater: +1 :)
Именно ее и поставил.
И как она повлияла?
← →
Reindeer Moss Eater © (2007-11-15 10:02) [5]Вот так и повлияла. У нее частота дискретизации DVD-ишная. 48 кГц
← →
Alex_C (2007-11-15 10:12) [6]Гм. Теперь возникает вопрос: как это исправить?
Подскажите хоть направление.
← →
Skyle © (2007-11-15 10:29) [7]Вернуть карту обратно.
← →
Reindeer Moss Eater © (2007-11-15 10:33) [8]Подскажите хоть направление.
with TRadioGroup.Create(Self) do
begin
Items.Add("44.1");
Items.Add("48.0");
end;
← →
Johnmen © (2007-11-15 11:14) [9]
> Alex_C (15.11.07 08:24)
> Прошу не перемещать мою тему в категорию для начинающих,
Просьба выполнена.
> sniknik © (15.11.07 09:00) [1]
> в итоге он туда все одно попадет... имхо.
Не угадал. :)
← →
Anatoly Podgoretsky © (2007-11-15 11:29) [10]> Johnmen (15.11.2007 11:14:09) [9]
Он и не мог угадать. Туда все таки попадают по программированию.
← →
Альф (2007-11-15 11:40) [11]А самому померить и настроить ммтаймер религия не позволяет ?
← →
oldman © (2007-11-15 11:41) [12]Как-то я раньше наивно думал, что таймер работает с миллисекундами вне зависимости от железа...
← →
Reindeer Moss Eater © (2007-11-15 11:47) [13]Но тикает-то именно железо.
MMRESULT timeGetDevCaps(LPTIMECAPS ptc, UINT cbtc);
Queries the timer device to determine its resolution.
typedef struct {
UINT wPeriodMin; \\ minimum supported resolution
UINT wPeriodMax; \\ maximum supported resolution
} TIMECAPS;
Contains information about the resolution of the timer.
← →
Anatoly Podgoretsky © (2007-11-15 12:15) [14]> oldman (15.11.2007 11:41:12) [12]
Да, но еще бывают хитрые, кривые программы. Которым плевать на конечного пользователя, лишь бы их программа работала - и такое состояние характерно для мультимедия, игр
← →
sniknik © (2007-11-15 15:36) [15]> Не угадал. :)
вообщето угадал, но долго она там не продержалась... (тоже можно было догадаться, по просьбе стимулирующей флуд ;))
← →
Sapersky (2007-11-15 16:16) [16]"Функция timeBeginPeriod(1) призвана повысить разрешение multimedia и waitable timers до 1ms. На самом деле, таймеры обрабатываются планировщиком, и их события не могут возникнуть чаще, чем планировщик получает управление. Понижая quantum до 1ms, мы позволяем планировщику более точно вызывать события таймера."
http://www.dtf.ru/articles/read.php?id=39888&page=2
← →
Alex_C (2007-11-15 16:25) [17]Я может чего не понимаю.
Вот в свете всего вышеизложенного объясниет мне:
mmResult := TimeSetEvent(TimetLength, 0, @TimerCallBack, 0, TIME_PERIODIC);
TimeLength - время переодичности работы таймера (порядка 0.1 - 0.5 секунды, т.к. ни о каких милисекундах даже речи не идет.)
Я здесь задаю ВРЕМЯ - что я еще должен померить и настроить?
MMRESULT timeGetDevCaps(LPTIMECAPS ptc, UINT cbtc); - а как это в настройке работы таймера можно использовать?
← →
Anatoly Podgoretsky © (2007-11-15 16:37) [18]> Alex_C (15.11.2007 16:25:17) [17]
> TimeLength - время переодичности работы таймера (порядка 0.1 - 0.5 секунды, т.к. ни о каких милисекундах даже речи не идет.)
Может быть, в сутках 86400000 миллисекунд
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.05 c