Интернет магазин музыки, mp3 почтой, заказать mp3 диски

баннер интернет-магазина ножей nifovka.ru

RSS - RSS,
Карта сайта

Rambler's Top100

Написать на e-mail © 2007-2012 г.



Теги страницы:

Вы управляете громкостью звука через звуковую дорожку. Поговорим о том, как подучить и настроить громкость звуковой дорожки. Настройка громкости. В интерфейсе IDirectVlusicAudioPalii-S есть метод под названием SetVolume. Этот метод использует два аргумента: громкость (более точно, поглощение децибел), измеряемую в сотнях и продолжительность времени, в течение которого изменяется громкость звука (что делает постепенное затухание звука очень простым). Метод SetVolume CSoundlnstance использует этот метод SetVolume звуковой дорожки, чтобы изменить громкость воспроизведения звука.

Я построил еще несколько продвинутых выполняемых функций в звуковом движке поверх этой модели. Если вы посмотрите на декларацию класса вы заметите, что там теперь также есть метод SetVolume. Он позволяет вам настроить громкость по умолчанию для новых ступеней этого конкретного звука. CSound вовсе не должен многое делать, чтобы этого добиться, - он просто запоминает то значение, какое вы зададите. Настоящая же работа происходит в методе CSoufidlnstance::liiit. Обратите внимание на строчку, SetVolume(5ound->GetVolumeС)); она настраивает громкость звуковой дорожки на текущую громкость CSound.

Совет. Обратите внимание на порядок, в котором CSoamdhKlance:выполняет операции. В особенности обратите внимание па то, что он настраивает громкость звуковой дорожки до того, как она начнет воспроизводить звук. Это гарантирует, что звук начнет играть с самого начала с должной громкостью. Если бы код настраивал громкость после вызова PlaySegmentEx, мог бы быть маленький промежуток времени, в течение которого пользователь слышал бы звук на полной громкости. Порядок, в котором вы делаете операции, очень важен - держите это в памяти.

ЗапрашиБание громкости. Запрашивание громкости звуковой дорожки так же просто: вызовите метод GetVolume для той звуковой дорожки, которая вам нужна. Get Volume берет один параметр: указатель на длинное целое, который он заполняет текущей громкостью звуковой дорожки. Другой способ управления громкостью. Естественно, громкость звуковой дорожки - это не единственная громкость, которую вы можете регулировать. Нижележащие буферы DirectSound (помните такие?) также дают возможность управления их громкостью, доступные через методы SetVolume и GetVolume. Я решил, что проще работать только с одной звуковой «кнопкой», и отставил все остальные возможности, Регулировка и громкости буфера DirectSound и громкости сегмента могут привести к путанице. Я просто выбрал, что мы будем двигаться вперед с сегмента.

Почему диапазон громкости такой странный? Большая часть программистов, привыкших работать с диапазонами, начинающимися с нуля и заканчивающимися на каком-то другом положительном числе, бывают очень озадачены тем, почему контроль громкости DirectMusic имеет диапазон от -9,600 до 0. Прежде всего, ряд измеряется в сотнях децибел, т. е. -100 — это -1 децибел, и -9,600 - это -96 децибел. Так делается это более аккуратным, но для чего отрицательные числа? Во время существования аналоговой записи звуковые инженеры измеряли качество своего оборудования отрицательными децибелами. Оценка 0 была недостижимо замечательной, потому что она означала, что оборудование ничего не теряет в процессе записывания звука. Чем ниже опускался уровень, тем ниже было качество аппаратуры.

Неповрежденное человеческое ухо обладает диапазоном слышимости в 120 децибел. Это значит, что, если бы вы включили ваши колонки достаточно громко для того, чтобы звук, если он воспроизводится на громкости 0, мог нанести вред, тогда вы только-только сможете услышать звук, воспроизводимый на громкости -120 децибел. Естественно, более практичным будет диапазон несколько меньше, скажем, от -96 до 0 децибел. Этот метод только уменьшения громкости звуков называется ослаблением. Практически вся звуковая аппаратура сейчас осуществляет контроль над звуком с помощью ослабления; другими словами, исходные выборки никогда не делаются громче, только тише.