Управление звуком с гарнитуры (Android). Программное управление звуком

На некоторых сайтах, созданных на основе Flash-технологии, имеется возможность управления звуком. Например, звук можно выключить в процессе проигрывания мультфильма, изменить громкость, а на некоторых сайтах можно даже регулировать звуковой баланс. Сначала рассмотрим общие сведения, а затем перейдем к примеру.
Объект Sound

Для работы со звуком достаточно воспользоваться объектом класса Sound (Звук) и его методами. Сначала определяется объект с помощью следующей конструкции:
Mysound =new Sound О;
Здесь Mysound - имя, назначаемое объекту класса Sound. Теперь можно управлять звуком, присоединяя через точку к имени объекта имена методов и указывая
необходимые параметры. Ниже перечислены основные методы объекта Sound:

  • attachSound ("имя_звука") -присоединяет к мультфильму звуковой файл из библиотеки;
  • getPan () - возвращает последнее значение баланса в интервале от -100 до 100. Левому динамику соответствует отрицательное значение, правому - положительное. Значение 0 представляет равномерное распределение силы звука междудинамиками;
  • getVolume ()- возвращает уровень громкости в интервале от 0 до 100;
  • setPan () - устанавливает баланс между левым и правым динамиком. Значения от -100 до -1 соответствуют большей громкости левого динамика, а от 1 до 100 - правого;
  • setVolume () - устанавливает громкость в интервале от 0 до 100. Значением по умолчанию является 100;
  • start (задержка, количество_повторений) - начинает воспроизведение звукового файла.Необязательные параметры позволяют задать время задержки в секундах и количество повторений воспроизведения;
  • stop () - приостанавливает воспроизведение звукового файла. Параметров нет;

Кроме перечисленных выше, имеется еще один метод объекта Sound - setTransform. Синтаксис его использования другой. Для вызова метода setTransform необходимо указать объект класса Object, связанный с параметрами управления динамиками. После этого создается объект класса Sound, который будет обрабатывать значения этих параметров с помощью метода setTransform. Параметры, о которых идет речь, определяют уровень входного сигнала в процентах (в интервале от-100 до 100):

  • l l-уровень воспроизведения в левом динамике сигнала, поступающего с левого входа;
  • 1 r- уровень воспроизведения в левом динамике сигнала, поступающего с
    правого входа;
  • r r - уровень воспроизведения в правом динамике сигнала, поступающего
    с правого входа;
  • r l- уровень воспроизведения в правом динамике сигнала, поступающего c левого входа.

По умолчанию параметры ll и rr имеют значение 100, а параметры 1r и rl - значение 0. процедура настройки параметров звука с помощью метода setTransform выглядит следующим образом:
Mytransform = ne Object () ;
Mytransform.il = 100;
Mytransform.Ir = 0;
Mytransform.rr = 100;
Mytransform.rl = 0;
MySound = new Sound ();
MySound.setTransform (Mytransform};

Задавая другие комбинации параметров звука, можно получать интересные эффекты.

Пример элемента управления звуком

Теперь рассмотрим пример создания элемента управления звуком. В новом мультфильме определим три слоя. Первый, самый верхний, назовем action, второй - volume и третий - pan . У нас должно получиться, как показано на рисунке:

Рис. 630. Создание слоев action, volume и pan в мультфильме
В слой action поместим такое действие:

zvuk = new Sound();
zvuk.attachSound("zvuk") ;
zvuk.start(0, 999999);

Этим создаётся новый звуковой объект. Присоединяем его из библиотеки с именем zvuk и запускаем с позиции 0, устанавливая количество повторений 99 999 раз (т. е. практически бесконечно). Если сейчас запустить мультфильм, то мы ничего не увидим и не услышим. Чтобы что-нибудь услышать, надо дать звуку имя. Для этого откроем библиотеку и найдем в ней наш звуковой символ. Неважно, как он там сейчас называется. Чтобы назвать звук, следует щелкнуть на его имени правой кнопкой мыши и в контекстном меню выбрать команду Linkage (). В раскрывшемся окне выберем переключатель Export this symbol и зададим имя zvuk . Иначе говоря, сделаем так, как показано на рисунке:

Рис. 632. Задание координат и размеров шкалы громкости звука

Теперь создадим в этом символе новый слой и поместим туда polzunok_MC_volume . Слой с ползунком должен быть выше слоя со шкалой. Поставим ползунок в центре шкалы и назначим ему такое действие:
onClipEvent (enterFrame) {
root.zvuk.setVolume(this. x) ;

Этим мы добьёмся того, что звук будет иметь значение, соответствующее координате х ползунка. Теперь переходим на главную сцену и вставляем туда символ shkala_volume . Вот мы и создали элемент управления громкостью звука.
Теперь организуем балансировку звука между левым и правым динамиками. Для этого создадим символ-кнопку с названием polzunok_pan и нарисуем там ползунок, затем создадим символ типа Movie Clip с именем polzunok_MC_pan поместим туда наш polzunok_pan . Зададим ему действие:
on (press) {
startDrag (this, false, on (release) { stopDrag ();
-100, 0, 100, 0) ;
}

Теперь создадим ещё один символ типа Movie Clip с именем shkala_pan . Нарисуем там нашу шкалу в виде прямоугольника с параметрами, как показано на рисунке:

Рис. 633. Задание координат и размеров шкалы балансировки звука

В этом же символе создадим ещё один слой и поместим его выше текущего. В этом слое расположим ползунок polzunok_MC_pan и зададим для него следующее действие:

OnClipEvent (enterFrame)
(root.zvuk.setPan(this. x) ;

Теперь переходим на главную сцену и вставляем в неё шкалу балансировки звука shkala_pan . Посмотрите мультфильм и попробуйте изменить положение ползунков. Если ошибок нет, то всё будет работать.

Однако у нас нет цифрового отображения громкости и баланса звука. Давайте разработаем и такой сервис. На главную сцену вставим два динамических текстовых поля. Одно для отображения громкости, другое -для баланса. Назовем их vol и pan соответственно. Сначала займёмся полем vol.
Выделим символ shkala_volume и откроем палитру Action для нашего ползунка. Добавим к уже имеющемуся следующий код:
s = new Sound(zvuk);
_root.vol = s.getVolume();
Таким образом, у нас должно получиться следующее:
onClipEvent (enterFrame) {
в Flash
root . zvuk . set Volume (this. _x) ; ^ = new Sound (zvuk) ; root.vol = s . getVolume () ;
}

Теперь пользователь может видеть цифровое значение громкости звука. Займемся организацией цифрового отображения баланса. Для этого перейдем к символу shkala_pan и добавим к его действиям следующий код:
s = new Sound (zvuk) ;
root. pan = s. getPan (); В результате должно получиться: onClipEvent (enterFrame) {
root. zvuk. set Pan (this -_x) ; s = new Sound(zvuk);
root. pan = s.getPan(); }

Теперь пользователь получает сведения относительно баланса звука. Однако когда ползунок переходит на левую часть шкалы, мы видим отрицательные числа. Обычно в подобных программах отображаются положительные числа и буква «L» или «R». Давайте попробуем сделать так же. Для этого в символе shkala_pan в палитре Actions для ползунка немного изменим существующий код. После замены должно получиться:
onClipEvent (enterFrame) (_root . zvuk . setPan (this ._x) ; s = new Sound (zvuk) ;
if (this._x<0) (
_root.pan = - (s .getPan ()) +"Left" ; } else if (this._x>0) { _root.pan = s . getPan () +"Right" ; } else if (this._x = = 0) (_root.pan = s. getPan ();

Здесь мы поставили условие, что если значение координаты х ползунка меньше нуля (т. е. баланс смещается влево), то в поле pan возвращается значение с минусом (отрицательное число с минусом есть положительное число). Кроме того, к Цифровому значению приписывается строка Left . А если баланс смещается вправо, то всё остаётся как есть и ещё приписывается Right . Если же значение координаты х равно нулю, то вообще ничего не приписывается. Теперь мы имеем более привычную форму отображения баланса. Таким же способом можно сделать, чтобы при минимальной громкости выводилось бы, например «OFF» или «Выкл.», а при максимальном значении - «МАХ». Для этого нужно лишь заменить код для ползунка в символе shkala_volume на следующий:
_root . zvuk. set Volume (this. _x) ;
s = new Sound (zvuk) ;
if (this._x == 0) {
root.vol = "Выкл."; Т
else if (this._x == 100) { _root.vol = "MAX"; Т
else { _root.vol = s.getVolume ();

Я часто работаю на ПК в то время, когда другие члены семьи спят. Обычно перед тем как начать или завершить работу, отключаю звук, но если забываю это сделать или случается аварийный отказ, звуки разносятся по всему дому. Можно ли как-нибудь заглушать Windows автоматически?

Эндрю Хоббз, Северная Каролина

Операционная система Windows не предлагает беззвучной загрузки в качестве особой опции, но все же кое-какие окольные пути и некоторые утилиты помогают это ограничение преодолеть. Вот несколько моих любимых трюков и инструментов, позволяющих «удерживать ПК от разговоров», да и вообще управлять его звуковыми функциями.

Аппаратный способ. Самый простой вариант заставить компьютер замолчать еще до того, как он начнет издавать звуки, - это убавить звук до нуля, повернув регулятор громкости на динамиках или просто обесточить их, если есть выключатель питания.

К сожалению, подобные способы не годятся не только для ноутбуков, но и для многих настольных систем. Однако для отдельных ПК можно отключать звук через экран настроек, если войти туда во время загрузки, до начала запуска Windows. Конечно, чтобы вернуть звук, придется перезагружаться и снова изменять настройки.

Отключение звука при запуске. Более удачное решение - использование бесплатной утилиты для отключения звука. Читатель Кристиан Клюкас из г. Магдебурга создал программы Mute («Отключение звука») и SetVol («Установка громкости»). Эти бесплатные утилиты доступны по адресу find.pcworld. com/12280. Поместите их в какую-нибудь папку по своему выбору. Чтобы сделать запуск Windows беззвучным, щелкните правой кнопкой мыши на кнопке «Пуск», выберите пункт «Открыть», дважды щелкните на значке «Программы», а затем, также дважды, на значке «Автозагрузка». С помощью Проводника или через «Пуск?Найти» найдите файл mute.exe. Перетащите его при нажатой правой кнопке мыши в папку «Автозагрузка» и выберите опцию «Создать ярлык». После этого при нажатой клавише дважды щелкните на ярлыке (или щелкните на нем правой кнопкой и укажите «Свойства»), чтобы открыть список его свойств. На закладке «Ярлык» щелкните на поле «Объект». Поместите курсор в конец имеющейся командной строки и введите пробел со следующим нужным вам переключателем; в данном случае требуется on -delay. По завершении командная строка должна выглядеть примерно так: «C:Program Filesmute.exe» on -delay (рис. 1).

Теперь нажмите OK. Эта команда будет поддерживать программу Mute в активном состоянии, так что каждый раз, когда вы будете завершать сеанс работы или выходить из Windows, звук отключится.

Хотя Mute и занимает всего лишь 1,5 Кбайт оперативной памяти, вы, возможно, не захотите, чтобы она постоянно там находилась. Поэтому уберите последовательность -delay из графы «Объект» в окне свойств ярлыка, и тогда звук во время запуска Windows будет отключаться, а программа Mute - закрываться. Однако Windows по-прежнему станет воспроизводить звук при запуске приложений из папки «Автозагрузка» (включая программу Mute), так что полностью беззвучного запуска вы не получите. С этой проблемой можно справиться, выбрав опции «Пуск?Настройка?Панель управления?Звук» («Звук и мультимедиа» в Windows 2000 и Me). В списке «События» (в Windows 2000 и Me предварительно выберите закладку «Звуки») отметьте «Запуск Windows», после чего в окне «Файл» укажите «(Нет)». Если есть другие приложения, запускаемые в начале работы ПК, вам, возможно, придется повторить такой шаг и для событий «Открытие программы» и «Закрытие программы». Завершив все, щелкните на OK.

Если требуется отключать звук запуска лишь от случая к случаю, используйте Mute с переключателем -delay, но запускайте программу с помощью ярлыка вручную вместо того, чтобы помещать его в папку «Автозагрузка».

Отключение звука по завершении работы. Программу Mute можно активировать также из какого-либо приложения, созданного специально для запуска программ при закрытии Windows. Парочка таких программ описана во врезке «Инструменты Windows».

Значок на Панели задач. После того как звук отключен, его можно вновь включить, щелкнув на значке громкоговорителя, расположенном в Системном лотке (около часов). Когда на экране появится панель управления громкостью, выключите функцию в квадратике слева от «Выкл.». Чтобы снова отключить звук, повторите те же шаги, снова включив функцию щелчком мыши. Если значок громкоговорителя не виден, откройте Панель управления и дважды щелкните на значке «Мультимедиа» (в Windows 9x) или «Звук и мультимедиа» (в Windows Me или 2000). Включите опцию в позиции «Регулятор громкости на панели задач» и нажмите OK. На Панели задач Windows XP щелкните на значке «Звук, речь и аудиоустройства», потом на «Звуки и аудиоустройства». Включите функцию «Отображать значок на панели задач» и нажмите OK.

Быстрый запуск. Когда вы щелкаете на значке громкоговорителя на Панели задач, то регулятор громкости иногда появляется на экране лишь через несколько секунд. Чтобы избежать такой задержки, можно использовать для включения и отключения звука утилиту Mute или же предпочесть утилиту SetVol для установки уровня громкости одним-единственным щелчком на значке, расположенном на панели «Быстрый запуск» в левой части Панели задач Windows.

Для создания постоянной кнопки отключения звука выберите опции «Пуск?Найти», которые нужны, чтобы найти файл mute.exe, и затем перетащите его при нажатой правой кнопке мыши на панель «Быстрый запуск». Затем задайте опцию «Создать ярлык». С помощью появившегося в результате этой операции значка Mute можно отключать или включать звук. Чтобы получить значок регулировки громкости, проделайте то же самое с файлом setvol.exe. Потом щелкните правой кнопкой на значке SetVol на панели «Быстрый запуск» и выберите «Свойства». В конце командной строки в поле «Объект», что на закладке «Ярлык», введите пробел, а после него - последовательность -10. Теперь создайте еще один ярлык для SetVol с переключателем +10 в конце командной строки. Когда вам захочется уменьшить громкость на 10%, щелкните на первом из этих ярлыков, а если увеличить на 10% - на втором. Можно использовать любые числа с шагом, равным 10. Если опустить знаки «+» или «-», то будет устанавливаться тот процент громкости, который вы укажете.

Чтобы снабдить новые значки подсказками, всплывающими при наведении на них курсора, щелкните на значке правой кнопкой мыши и выберите опцию «Переименовать». Введите текст подсказки и щелкните на OK (в Windows 98 SE). В более ранних версиях Windows для того же щелкните правой кнопкой мыши на свободном поле панели «Быстрый запуск» и выберите опцию «Открыть», после чего используйте в качестве имени значка устраивающий вас текст подсказки (рис. 2).

Управление с клавиатуры. Чтобы включать и выключать звук с помощью клавиатуры, создайте ярлык для утилиты Mute и поместите его на Рабочий стол или в какую-нибудь папку в иерархии Главного меню. Я рекомендую для этого организовать папку под названием «Быстрые клавиши» (или Keyboard Shortcuts, если угодно) в «Главном меню/Программы». Это позволяет легко найти сведения о быстрых клавишах, если вам когда-либо понадобится их удалить или заменить.

Щелкните правой кнопкой мыши на нужном вам ярлыке и выберите пункт «Свойства». На закладке «Ярлык» щелкните на поле «Быстрый вызов», после чего нажмите те клавиши, которые вы хотите назначить для включения-отключения звука. Если вы выберете просто какую-либо из функциональных клавиш (- клавиши в верхнем ряду клавиатуры) или клавишу на цифровой клавиатуре, то не сможете в дальнейшем применять ее для иных целей, так что лучше указать сочетания, +, +, + или ++ с какой-либо иной клавишей. Постарайтесь к тому же выбрать такую комбинацию, которой у вас не будет в других программах (рис. 3).

Щелкните на OK. Если вы в дальнейшем удалите эту быструю клавишу, вам придется перезапускать Windows, чтобы соответствующая комбинация вновь стала свободной.

Компактная панель управления громкостью. Если вы щелкнете на значке громкоговорителя на Панели задач дважды, то на экране появится диалоговое окно управления громкостью, включающее регулятор баланса и отдельные регуляторы громкости для Wav-звуков, лазерного проигрывателя и т. д. (конкретный набор зависит от комплекта установленных в вашей системе аудиодрайверов). Чтобы сделать данное диалоговое окно более компактным, нажмите +S (рис. 4). Оно будет сохранять этот новый, более изящный облик до тех пор, пока вы не откроете его опять и не нажмете на +S.

Мгновенный вызов Диспетчера задач

Windows 2000. Диспетчер задач Windows позволяет с легкостью отключать скрытые или проблемные приложения, проверять, какие из программ пожирают оперативную память, и анализировать работу ЦП. Вы можете быть страстным поклонником Диспетчера задач -- и не знать кратчайшего способа добраться до этой утилиты.

В Windows 2000 Диспетчер задач можно запустить, нажав сочетание клавиш ++ для вывода на экран диалогового окна «Безопасность Windows» и щелкнув потом на кнопке «Диспетчер задач».

В Windows XP надо просто щелкнуть правой кнопкой на свободном пространстве Панели задач и выбрать в раскрывшемся меню опцию «Диспетчер задач».

А вот способ, позволяющий сделать обращение к Диспетчеру задач еще более удобным. Читатель Тимоти Дж. Луома из шт. Флорида указывает, что когда Диспетчер задач работает, то он помещает в Системный лоток (в правом нижнем углу экрана) крохотный анимированный значок, отражающий работу ЦП. Наведя на него курсор мыши и задержав его там на несколько мгновений, можно также увидеть сообщение о том, на сколько процентов используется ЦП, - оно выводится в составе подсказки к этому значку. Если эта функция вам нравится, то почему бы не заставить Диспетчер задач работать постоянно, поместив ярлык к нему в папку «Автозагрузка»?

Щелкните правой кнопкой мыши на кнопке «Пуск» и выберите пункт «Открыть». Дважды щелкните на значке «Программы», потом «Автозагрузка». Снова щелкнув на кнопке «Пуск», выберите «Найти?Файлы и папки», введите в верхнюю графу команду tаskmgr.exe, в графе «Где искать» укажите диск, с которого запускается система (для большинства пользователей это будет c:), и щелкните на кнопке «Найти». Когда увидите программный файл Диспетчера задач в окне результатов поиска, перетащите его при нажатой правой кнопке в раскрытую папку «Автозагрузка». Отпустив кнопку мыши, выберите опцию «Создать ярлыки». Теперь щелкните правой кнопкой на новом ярлыке и укажите пункт «Свойства». Выберите затем закладку «Ярлык», а в ниспадающем списке в графе «Окно» - «Свернутое в значок». Щелкните на OK. Чтобы Диспетчер задач не попадался на глаза, когда он не нужен, дважды щелкните на ярлыке для запуска утилиты и в меню в верхней части ее окна задайте «Параметры?Скрывать свернутое».

Теперь Диспетчер задач будет запускаться незримо, но вы всегда сможете раскрыть его окно, дважды щелкнув на значке ЦП на Системной панели.

Scott Dunn. Sound Off: Take Charge of Windows Audio Controls. PC World, январь 2002 г., с. 148.

Запуск Задач при завершении работы

Имеющуюся в Windows папку «Главное меню/Программы/Автозагрузка» и «Планировщик задач» можно использовать для автоматического запуска приложений или выполнения других задач в определенные моменты времени, за исключением того момента, когда нужно будет завершать работу ПК. Если же вы хотите при выключении компьютера вычищать созданные в течение дня временные файлы или, скажем, отключать после работы звук, то вам помогут следующие утилиты.

В качестве возможного бесплатного решения попробуйте ActiveSaver, тощенький 45-Кбайт файл с данными для хранителя экрана (.scr), который, подобно стандартному хранителю экрана, поможет запускать какой-либо другой файл, выходить из Windows или проводить обе эти операции по истечении некоторого, заранее установленного промежутка времени. Для конфигурирования ActiveSaver подойдет стандартная кнопка «Настройка» хранителя экрана. (Откройте доступ к ней, щелкнув правой кнопкой мыши на свободной поверхности Рабочего стола, выберите пункт «Свойства» и щелкните на закладке «Заставка»). Но чтобы ActiveSaver работал, его даже не обязательно специально указывать в качестве активного хранителя экрана. Просто перетащите файл ActiveSaver.scr на кнопку «Пуск» или на панель «Быстрый запуск», после чего, если вы решите, что на сегодня с вас хватит, используйте образовавшуюся позицию/значок вместо привычных команд «Пуск?Завершение работы».

Утилита ActiveSaver позволяет запускать при завершении работы только одну какую-нибудь программу, и к тому же на моей машине с Windows 2000 она конфликтует с функцией выключения питания компьютера. Если это вас волнует или хочется иметь более многофункциональную утилиту, рассмотрите ShutdownPlus. Эта условно-бесплатная программа разрешает при завершении работы запускать несколько задач, а в Windows 98 и более поздних версиях этой ОС она замещает применяемое в Windows диалоговое окно завершения работы своим собственным. Значит, вам не придется запускать для выхода из системы какое-либо специальное приложение. Утилита ShutdownPlus поставляется в персональной (30 долл.) и профессиональной (40 долл.) версиях. Обе указанные программы можно получить по адресу ind.pcworld.com/12280.

Возможно, путешествуя по безграничным просторам Всемирной паутины, Вы замечали на некоторых Flash-сайтах возможность управления звуком (например, его можно выключить в процессе проигрывания клипа или изменить его громкость, а некоторых сайтах можно даже регулировать его баланс). Если у Вас есть желание и достаточно терпения, давайте попробуем сделать такое управление звуком.
Для того, чтобы создать этот эффект нам понадобится сам звук и собственно программа Flash 5 (именно пятая версия, поскольку пример написан именно в ней).
Создайте новый клип, а в нём три слоя. Первый (здесь и далее слои будут перечисляться сверху вниз т.е. самый верхний - первый, ниже - второй и. т. д.) назовите "action", второй - "vol" и третий - "pan". У Вас должно получиться что-то вроде этого:

В слой "action" поместите такой action:

zvuk = new Sound();
zvuk.attachSound("zvuk");
zvuk.start(0, 999999);
_
Этим Вы создаёте новый звуковой объект, присоединяем его из библиотеки с именем "zvuk" и запускаем с позиции 0 и повторением 99999 раз т.е. практически бесконечно:Если Вы сейчас запустите клип, то ничего не увидите и не услышите. Чтобы Вы могли что-нибудь услышать Ваш звук, надо дать ему имя для этого откройте библиотеку и найдите там Ваш звук. Неважно как он там называется сейчас, это не имеет никакого значения, чтобы реально назвать звук, Вам следует нажать на его имя правой кнопкой мыши и из контекстного меню выбрать пункт "Linkage" в этом окне выберите пункт "Export this symbol" и задайте имя "zvuk". В общем сделайте всё как показано на рисунке.

Теперь если Вы посмотрите клип, то услышите Ваш звук.
Итак, почти половина работы уже сделана, осталось только организовать управление этим звуком. Для решения этой задачи существует множество способов. Мы сделаем по самому, на мой взгляд, распространенному методу, методу "ползунка" т.к. этот метод применяется во многих музыкальных проигрывателях (например, в WinAmp-е).
Создайте новый символ - кнопку и назовите её "polzunok_vol" эта кнопка будет регулятором громкости. Создайте ещё один символ типа Movie Clip, с названием "Polzunok_MC_vol", поместите туда из библиотеки символ "polzunok_vol" и задайте ему такой action:
____________________________
on (press) {
startDrag (this, false, 0, 7, 100, 7);
}
on (release) {
stopDrag ();
}
___

Затем создайте ещё один символ типа Movie Clip и назовите его "shkala_vol" в этом символе нарисуйте прямоугольник, по которому будет ездить наш ползунок. Для правильной работы задайте ему координаты как показано на рисунке

Теперь создайте в этом символе новый слой и поместите туда "polzunok_MC_vol", слой с ползунком должен быть выше слоя со шкалой, поставьте ползунок по центру шкалы и назначьте ему такой action:

onClipEvent (enterFrame) {

}
__________________________________
Этим мы добьёмся того, что звук будет иметь такое же значение эквивалентное значению "Х" ползунка а поскольку он ползает от 0 до 100 вдоль координаты "Х", то значение звука будет соответствующим. Теперь переходите на главную сцену и вставляйте туда символ "shkala_vol". Вот мы и имеем у себя управление громкостью звука.

Теперь организуем балансировку звука между левым и правым динамиками.
Для этого создадим символ - кнопку с названием "polzunok_pan" и нарисуем там ползунок, затем создадим символ Movie Clip с именем "polzunok_MC_pan" и поместим туда наш "polzunok_pan". Зададим ему action:
_____________________________________
on (press) {
startDrag (this, false, -100, 0, 100, 0);
}
on (release) {
stopDrag ();
}
_____________________________________

Теперь создадим ещё один символ - Movie Clip с именем "shkala_pan"
И нарисуем там нашу шкалу в виде прямоугольника с параметрами в точности как показано на рисунке.

В этом же символе создайте ещё один слой и поместите его выше текущего. В этот слой поместите наш ползунок "polzunok_MC_pan" и задайте ему следующий action:
_________________________________

onClipEvent (enterFrame) {
_root.zvuk.setPan(this._x);
}
________________________________

Теперь переходите на главную сцену и вставляйте в неё "shkala_pan".
Посмотрите клип и попробуйте всё потаскать, если всё было сделано правильно, всё будет работать.

Но, как Вы, наверно сами видите, здесь есть небольшие недостатки. Например пользователь не видит цифрового отображения громкости звука или баланса: Давайте предоставим ему такой сервис.

На главную сцену вставьте два динамических текстовых поля. Одно для отображения громкости, другое для баланса. Назовите их "vol" и "pan" соответственно. Сначала займёмся полем "vol".
Переходите в символ "shkala_vol" и там откройте окно action для нашего ползунка и добавьте туда следующий код к уже имеющемуся там коду
_________________________________
s = new Sound(zvuk);
_root.vol = s.getVolume();
________________________________

и того у Вас должно получиться:
___________________________________
onClipEvent (enterFrame) {
_root.zvuk.setVolume(this._x);
s = new Sound(zvuk);
_root.vol = s.getVolume();
}
___________________________________

Теперь пользователь может видеть цифровое значение громкости звука. Передём к организации цифрового отображения баланса. Переходите к символу "shkala_pan" и там добавьте следующий код:
_____________________________________
s = new Sound(zvuk);
_root.pan = s.getPan();
_____________________________________

В итоге должно получиться:
________________________________
onClipEvent (enterFrame) {
_root.zvuk.setPan(this._x);
s = new Sound(zvuk);
_root.pan = s.getPan();
}
_______________________________

Теперь пользователь получает сведения относительно баланса звука. Вот вроде бы и всё, но при просмотре клипа бросается в глаза одна деталь, а именно: кому понравиться, что когда ползунок переходит на левую часть шкалы, мы видим отрицательные числа: Обычно в подобных программах отображаются положительные числа и буква "L" или "R". Давайте попробуем сделать так же. Для этого в символе "shkala_pan" в окне actions для ползунка добавим, точнее лучше заменим существующий код. После замены должно получиться:

__
onClipEvent (enterFrame) {
_root.zvuk.setPan(this._x);
s = new Sound(zvuk);
if (this._x<0) {
_root.pan = -(s.getPan())+"Left";
} else if (this._x>0) {
_root.pan = s.getPan()+"Right";
} else if (this._x = = 0) {
_root.pan = s.getPan();
}
}
_____________________________________________

Немного поясню получившееся. Мы поставили условие, что если значение "Х" ползунка меньше нуля (т.е. баланс смещается влево), то в поле "pan" возвращается значение с минусом (а минус на минус даёт плюс) и помимо этого приписывается строка Left. Ну а если баланс смещается влево, то всё остаётся как есть и ещё приписывается "Right". Ну а если "Х" координата равна нулю, то вообще ничего не приписывается. Теперь мы имеем более привычную форму записи баланса. Таким же способом можно сделать так, чтобы когда громкость была минимальная, выводилось бы, например "OFF" , а при максимальном значении - "MAX". Для этого нужно лишь заменить код у ползунка в символе "shkala_vol" на следующий код:
________________________________________________
onClipEvent (enterFrame) {
_root.zvuk.setVolume(this._x);
s = new Sound(zvuk);
if (this._x == 0) {
_root.vol = "OFF";
} else if (this._x == 100) {
_root.vol = "MAX";
} else {
_root.vol = s.getVolume();
}
}
_____________________________________________

Теперь мы имеем все, что надо для нормального отображения звука и баланса.

0 out of 5 0 based on 0 voters.

После того как вы, насколько смогли, защитили помещение от внешнего мира, вам следует разобраться, как звук распространяется внутри самого помещения.

Звук распространяется в воздухе в виде волн. Эти волны отражаются от стен комнаты и вызывают такие эффекты, как реверберация и эхо. Одним из проклятий домашних студий является то, что они, как правило, имеют очень маленькие размеры. Так как звук распространяется достаточно быстро (со скоростью около 330 м/с), то когда вы сидите около акустических систем и слушаете музыку, вы в равной степени слышите звук, исходящий от колонок, и звук, отраженный от стен. В больших помещениях исходный и отраженный звук вы слышите раздельно, что уменьшает проблемы. В хорошей студии нужно "укротить" эти отражения, чтобы они не мешали слышать чистый звук, исходящий из акустических систем.

Описать все отражения, происходящие в комнате, довольно трудно. Почитайте книги по акустике (науке о распространении звуков), и вы узнаете, что существуют разные моды резонанса: аксиальные (одно измерение), тангенциальные (два измерения) и косые (три измерения). Каждая из мод связана с определенным способом распространения и взаимодействия звуковых волн в помещении. Знание мод своего помещения может помочь с выбором стратегии работы с акустикой. Однако формулы, служащие для вычисления мод, действительно очень сложные, особенно для тангенциальных и косых.

Вы можете более подробно узнать о модах резонанса помещения и даже найти калькуляторы мод в Internet, задав в любимой поисковой системе словосочетание “моды резонанса”. Вам будет предложено всего несколько ссылок, с которых вы и сможете начать изучение данного вопроса. Изучите его самостоятельно, так как подробное его рассмотрение достойно целой книги.

Итак, рискуя быть преданным анафеме профессиональными инженерами-акустиками всего мира, я все же поделюсь с вами некоторыми хитростями, которые я использовал в своих студиях. Моей главной целью было создание комнаты с тем звучанием, которое нравится лично мне, и достаточным уровнем контроля над отражениями. Я, как и многие, записывал и микшировал в одной и той же комнате, что давало возможность выполнять по ходу небольшие корректировки для того, чтобы звук больше напоминал то, к чему я стремился.

Существуют два момента, при которых звучание играет очень важную роль, - собственно записывание и микширование. Каждый из этих процессов требует особого подхода, чтобы запись имела наилучшее из возможных звучание. Оба эти процесса мы рассмотрим в настоящем разделе.

Мы рассмотрим:

  • создание звуковых объектов (объектов типа Sound);
  • привязку звуков к таким объектам;
  • управление воспроизведением звука;
  • динамическое изменение параметров звучания (громкость и панорамирование);
  • загрузку в объект Sound внешних.mp3 файлов.

Объект Sound появился в 5-й версии Flash, поэтому все приёмы,
рассмотренные в статье, кроме загрузки внешних.mp3 файлов, могут быть использованы
и в 5-й версии.

Создание звуковых объектов

Начнём. Вы уже наверное догадались, чтобы производить какие-либо
операции со звуком, нужно создать объект типа Sound . Сделать это очень
просто. Существует стандартная конструкция

soundObject = new Sound(target);

где soundObject - это имя создаваемого звукового объекта, а target
- необязательный параметр, указывающий объект типа MovieClip, или уровень. Если
мы хотим, чтобы наш звуковой объект работал только в одном MovieClip-е или на
одном уровне, то мы должны его создавать с указанием данного параметра:

movieSound = new Sound("SomeClip");

MovieSound = new Sound("_root.teddy.mouth");

LevelSound = new Sound("_level1");

Если же планируется использовать объект в любом месте вашей флэшки,
то он создаётся без параметров:

globalSound = new Sound();

Привязка звука к объектам Sound

Объект Sound позволяет вопроизводить звуки, не втавленные непосредственно
в ключевой кадр временной шкалы. Но для этого их надо сначала поместить в библиотеку,
а затем экспортировать для использования в ActionScript.

Для помещения звука в библиотеку достаточно выбрать "File
-> Import to Library...", и в появившемся окне указать имя звукового
файла.

Теперь, когда файл уже находится в библиотеке, выделяем его,

кликаем правой кнопкой мыши на названии звука, и в появившемся
контекстном меню выбираем "Linkage...". Должно появится подобное окошко:

В поле Identifier мы вводим идентификатор (имя) звукового ресурса.
Можно включить галочку "Export in first frame", тогда звук будет загружен
уже в первом кадре мульта, однако, такой способ неприменим при хоть сколько-нибудь
больших звуках, т.к. до начала загрузки 1-го кадра (даже прелоадера не видно!)
мы видим пустое место, появляется ощущение "зависшего клипа". Поэтому
рекомендуется выключать эту галочку, а в кадре где нужна загрузка звука, помещать
его на временную шкалу с параметрами Sync Stop. Тогда звук не будет загружен
до этого кадра и можно спокойно использовать прелоадер.

Далее, чтобы привязать звуковой ресурс к звуковому объекту, нужно
воспользоваться функцией attachSound(idName) , в которой параметр idName
указывает идентификатор звукового ресурса:

mySound = new Sound();

MySound.attachSound("tada");

После этого наш звуковой объект готов к манипуляциям.

Воспроизведение и остановка звуков

Основными действиями, выполняемыми со звуковыми объектами являются,
конечно же, воспроизведение и остановка воспроизведения.

Для того, чтобы воспроизвести звук, используется функция start(offset,
loops)
объекта Sound . Параметр offset , указывает смещение
в секундах, от начала звукового фрагмента, а loops - количество повторений
проигрываемого фрагмента.

Например, если мы хотим проиграть вторую половину 20-тисекундного
фрагмента 3 раза, мы запишем:

someSoundObject.play(10, 3);

Звук начнёт проигрываться с 10-й секунды.

Оба параметра функции start() являются необязательными.
По умолчанию звук проигрывается с самого начала один раз:

someSoundObject.play();

Можно повторить звуковой фрагмент несколько раз с начала, тогда
мы указываем нулевое смещение:

someSoundObject.play(0, 5);

Чтобы остановить проигрывание, используется функция stop(idName) .
Вызванная без параметров, функция останавливает все звуки. Указав параметр idName,
обозначающий идентификатор звука, можно остановить только один специфический
звук:

globalSnd.stop();

SomeSnd.stop("tada");

Динамическое изменение параметров звука

Объект Sound позволяет динамически устанавливать уровень громкости
и баланс (панорамирование) звука. Существуют также функции для получения значения
баланса и громкости.

Для установки громкости звука используется функция setVolume(value) .
Параметр value может принимать значения от 0 (минимальный уровень) до
100 (максимальный уровень). По умолчанию уровень громкости равен 100.

Для установки баланса используется функция setPan(value) .
Здесь параметр value может принимать значения от -100 (весь звук в левом
канале) до 100 (весь звук в правом канале). Значение 0 (оно стоит по умолчанию)
означает, что звук равномерно распределён между обоими каналами.

globalSnd.setVolume(50); // Половинная
громкость

GlobalSnd.setPan(70); // Сместить звук по большей части в правый канал

Можно использовать функции getVolume() и getPan()
для получения текущего значения громкости и баланса соответственно.

currentVolume = someSnd.getVolume();

CurrentPan = someSnd.getPan();

Можно одновременно устанавливать все параметры звука при помощи
функции setTransform() , но мы её в данной статье не рассматриваем.

Можно в цикле вызывать функции setVolume() и setPan() ,
плавно изменяя значение параметра, и тем самым создавать эффекты затухающего,
возрастающего и/или перемещающегося звука.

Во Flash MX появилась возможность загрузки внешних файлов. Для
этого используется функция loadSound(url, stream) объекта Sound .
Первый параметр, url , указывает путь к файлу. Второй, stream ,
является логической (булевой) переменной, определяющий потоковый режим загрузки
звукового файла. Если значение stream равно false , то Flash дождётся
полной загрузки файла, прежде чем его воспроизводить. Если же stream
равен true , то файл может воспроизводиться в потоковом режиме не загрузившись
полностью. Данный режим рекомендуется использовать только на быстрых каналах
связи или при использовании на локальной машине, т.к. потоковое воспроизведение
по нашим каналам Интернет часто приводит к прерыванию воспроизведения длинными
паузами:).

snd1 = new Sound();

Snd1.loadSound("track03.mp3", true);

Snd2 = new Sound();

Snd2.loadSound("http://someserver.com/some_file.mp3", false);

Специально для этого урока я сделал маленький проигрыватель,
который использует подгрузку внешних файлов и позволяет менять громкость и баланс
проигрываемой композиции. Он также позволяет отслеживать сколько процентов запрошенной
композиции загружено. Этот пример можно скачать ( ,
218k), и поэкспериментировать самому.

Внимание! mp3 файлы не включены в архив с примером, поэтому вам
придётся использовать свои, предварительно изменив пути к ним в параметрах компонента
ComboBox.

Надеюсь, данная статья оказалась вам полезной.