Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.16;
Скачать: CL | DM;

Вниз

Проблема с мультимедиа таймером.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.03 c
2-1195620594
Klopan
2007-11-21 07:49
2007.12.16
Кнопка скрола в меню


15-1195112077
11111
2007-11-15 10:34
2007.12.16
тест в клиент-сервер. архитектуре


2-1195841377
Neo
2007-11-23 21:09
2007.12.16
как проверить - сущ-ет ли БД, с которой связывается программа?


3-1186590083
Shamansky_ne
2007-08-08 20:21
2007.12.16
файлы в базу данных


2-1195863024
СЕРВИС
2007-11-24 03:10
2007.12.16
Связь между сервисом и его программой оболочкой