Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1195449555
Slider007
2007-11-19 08:19
2007.12.16
С днем рождения ! 19 ноября 2007 понедельник


1-1187160815
AndrewK
2007-08-15 10:53
2007.12.16
Градиентная заливка строк в DBGrid


2-1195379062
Новичек
2007-11-18 12:44
2007.12.16
Передача параметров другой программе.


2-1195478395
marik
2007-11-19 16:19
2007.12.16
изменение размеров при BorderStyle = bsNone


2-1195311260
Dru095
2007-11-17 17:54
2007.12.16
как удалить файл с определенной датой создания





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский