Составители:
Рубрика:
обычная целая арифметика, например над типами short (16-разрядный) и long
(32-разрядный). Если разрядность отсчета превышает 16, она может быть не
кратна байту – современные звуковые адаптеры могут использовать 18-, 20- и
22-разрядные отсчеты. В таком случае отсчет выравнивается по старшей грани-
це трех- или четырехбайтового слова, а лишние младшие разряды заполняются
нулями. Подобное представление позволяет работать с отсчетами любой раз-
рядности так же, как с 24- или 32-разрядными; от фактической разрядности от-
счета зависит лишь точность полученного числа.
С момента запуска потока драйвер отслеживает текущую позицию записи
или воспроизведения, которая в любой момент может быть запрошена прило-
жением. Точность определения реальной позиции зависит от используемого
устройства: она может указывать на конкретный звуковой отсчет либо на не-
большую группу отсчетов, находящуюся в данный момент в обработке. Как
правило, все адаптеры имеют скрытую небольшую очередь между встроенным
процессором и ЦАП/АЦП, так что полученная от драйвера позиция почти все-
гда будет отличаться от реальной на несколько отсчетов. Драйвер отслеживает
позицию путем подсчета количества звуковых блоков потока, переданных от
приложения к устройству или наоборот. Если приложение не успевает свое-
временно передавать драйверу звуковые буферы, то вычисленная позиция бу-
дет отставать от действительного времени записи или воспроизведения.
Циклическое движение буферов может быть приостановлено и затем во-
зобновлено с места прерывания с сохранением позиции в потоке. Поток может
быть уничтожен (сброшен) – в этом случае драйвер немедленно возвращает
приложению все ждущие буферы и обнуляет позицию потока. Для устройств
воспроизведения один или несколько идущих подряд буферов могут быть за-
циклены (looped): в этом случае драйвер последовательно проигрывает их за-
данное количество раз, после чего возвращает приложению и переходит к вос-
произведению следующих буферов из очереди.
Звуковая подсистема Windows допускает работу с устройством несколь-
ких процессов (клиентов) одновременно. Многие современные и даже некото-
рые устаревшие звуковые устройства поддерживают более одного клиента;
устройство вывода (или его драйвер) смешивает проигрываемые клиентами
звуковые потоки, а устройство ввода размножает записываемый поток для
всех подключенных клиентов.
Устройство, драйвер которого поддерживает не более одного клиента, не
может быть повторно открыто до тех пор, пока клиент не закроет его. При по-
пытке повторно открыть такое устройство звуковая подсистема возвращает со-
общение об ошибке, сигнализирующее о том, что устройство занято.
Для упрощения реализации основных операций со звуком Windows со-
держит службу переназначения – Wave Mapper. Поскольку в ОС Windows мо-
жет быть установлено более одного звукового устройства, существуют поня-
тия стандартного системного устройства ввода и стандартного системного
устройства вывода. Оба они задаются в закладке Audio формы свойств муль-
тимедиа. Приложение может запросить работу с конкретным звуковым уст-
137
обычная целая арифметика, например над типами short (16-разрядный) и long (32-разрядный). Если разрядность отсчета превышает 16, она может быть не кратна байту – современные звуковые адаптеры могут использовать 18-, 20- и 22-разрядные отсчеты. В таком случае отсчет выравнивается по старшей грани- це трех- или четырехбайтового слова, а лишние младшие разряды заполняются нулями. Подобное представление позволяет работать с отсчетами любой раз- рядности так же, как с 24- или 32-разрядными; от фактической разрядности от- счета зависит лишь точность полученного числа. С момента запуска потока драйвер отслеживает текущую позицию записи или воспроизведения, которая в любой момент может быть запрошена прило- жением. Точность определения реальной позиции зависит от используемого устройства: она может указывать на конкретный звуковой отсчет либо на не- большую группу отсчетов, находящуюся в данный момент в обработке. Как правило, все адаптеры имеют скрытую небольшую очередь между встроенным процессором и ЦАП/АЦП, так что полученная от драйвера позиция почти все- гда будет отличаться от реальной на несколько отсчетов. Драйвер отслеживает позицию путем подсчета количества звуковых блоков потока, переданных от приложения к устройству или наоборот. Если приложение не успевает свое- временно передавать драйверу звуковые буферы, то вычисленная позиция бу- дет отставать от действительного времени записи или воспроизведения. Циклическое движение буферов может быть приостановлено и затем во- зобновлено с места прерывания с сохранением позиции в потоке. Поток может быть уничтожен (сброшен) – в этом случае драйвер немедленно возвращает приложению все ждущие буферы и обнуляет позицию потока. Для устройств воспроизведения один или несколько идущих подряд буферов могут быть за- циклены (looped): в этом случае драйвер последовательно проигрывает их за- данное количество раз, после чего возвращает приложению и переходит к вос- произведению следующих буферов из очереди. Звуковая подсистема Windows допускает работу с устройством несколь- ких процессов (клиентов) одновременно. Многие современные и даже некото- рые устаревшие звуковые устройства поддерживают более одного клиента; устройство вывода (или его драйвер) смешивает проигрываемые клиентами звуковые потоки, а устройство ввода размножает записываемый поток для всех подключенных клиентов. Устройство, драйвер которого поддерживает не более одного клиента, не может быть повторно открыто до тех пор, пока клиент не закроет его. При по- пытке повторно открыть такое устройство звуковая подсистема возвращает со- общение об ошибке, сигнализирующее о том, что устройство занято. Для упрощения реализации основных операций со звуком Windows со- держит службу переназначения – Wave Mapper. Поскольку в ОС Windows мо- жет быть установлено более одного звукового устройства, существуют поня- тия стандартного системного устройства ввода и стандартного системного устройства вывода. Оба они задаются в закладке Audio формы свойств муль- тимедиа. Приложение может запросить работу с конкретным звуковым уст- 137
Страницы
- « первая
- ‹ предыдущая
- …
- 135
- 136
- 137
- 138
- 139
- …
- следующая ›
- последняя »