ASaudio: удобная работа со звуком в ActionScript 3.0

ASaudio - библиотека классов на ActionScript 3.0, призванная облегчить работу со звуком для flash-программистов. И сразу же небольшой пример...

Код ActionScript 3.0:

/* импорт классов */ import com.neriksworkshop.lib.ASaudio.*; /* кнопка */ btn.addEventListener(MouseEvent.CLICK, onClick); function onClick(event:MouseEvent):void { btn.visible = false; /* создаём объект класса Track, с помощью которого можно загрузить mp3-файл и управлять его воспроизведением */ var sound:Track = new Track("content/kuranty.mp3"); /* запускаем проигрывание звукового файла */ sound.start(); }

Результат:

В приведённом выше примере, в flash-ролик загружается и воспроизводится mp3-файл. Но делается это буквально парой строчек кода (импорт классов и код кнопки считать не будем). Согласитесь, это весьма и весьма удобно. Причём код получается простым и наглядным, что тоже немаловажно.

Итак, если вам такой подход к работе со звуком нравится, то скачиваем библиотеку ASaudio по ссылке, указанной в начале поста, или берём библиотеку из исходников, которые прилагаются к данному посту (ссылка на исходники, как всегда, в конце поста).

Конечно, возможности ASaudio не исчерпываются только загрузкой и воспроизведением mp3-файлов. Наоборот, возможностей у ASaudio очень много. Так много, что я даже не буду пытаться их осветить в одной статье. Но всё же основные постараюсь назвать...

Начать стоит, конечно, с настройки громкости при воспроизведении звуковых файлов. За уровень громкости в ASaudio отвечает свойство volume.

Код ActionScript 3.0:

/* импорт классов */ import com.neriksworkshop.lib.ASaudio.*; /* кнопка */ btn.addEventListener(MouseEvent.CLICK, onClick); function onClick(event:MouseEvent):void { btn.visible = false; /* создаём объект класса Track, с помощью которого можно загрузить mp3-файл и управлять его воспроизведением */ var sound:Track = new Track("content/kuranty.mp3"); /* запускаем проигрывание звукового файла */ sound.start(); /* настройка громкости (от 0 до 1) */ sound.volume = 0.5; }

В данном примере мы воспроизводим mp3-файл с 50-процентной громкостью (в AS 3.0, если вы помните, громкость звука принято оценивать в диапазоне от 0 до 1).

Результат:

Что не хватает в двух приведённых выше примерах? Правильно! Не хватает возможности остановить воспроизведение звукового файла :-)

За остановку проигрывания отвечает метод с говорящим названием stop().

Код ActionScript 3.0:

/* импорт классов */ import com.neriksworkshop.lib.ASaudio.*; /* создаём объект класса Track, с помощью которого можно загрузить mp3-файл и управлять его воспроизведением */ var sound:Track = new Track("content/kuranty.mp3") /* кнопка, начинающая воспроизведение mp3-файла */ btn_stop.visible = false; btn_start.addEventListener(MouseEvent.CLICK, onStart); function onStart(event:MouseEvent):void { btn_start.visible = false; btn_stop.visible = true; /* запускаем проигрывание звукового файла */ sound.start(); } /* кнопка, останавливающая воспроизведение mp3-файла */ btn_stop.addEventListener(MouseEvent.CLICK, onStop); function onStop(event:MouseEvent):void { btn_start.visible = true; btn_stop.visible = false; /* останавливаем проигрывание звукового файла */ sound.stop(); }

Результат:

Имеются в ASaudio специальные свойства для отслеживания прогресса воспроизведения звуковых файлов:

duration - общая продолжительность звука в миллисекундах;

positionMs - продолжительность уже воспроизведённой части музыкальной композиции (в миллисекундах);

position - возвращает значение в интервале от 0 (начало музыкальной композиции) до 1 (конец композиции), которое характеризует текущий процесс воспроизведения звукового файла.

Код ActionScript 3.0:

/* импорт классов */ import com.neriksworkshop.lib.ASaudio.*; /* создаём объект класса Track, с помощью которого можно загрузить mp3-файл и управлять его воспроизведением */ var sound:Track = new Track("content/kuranty.mp3"); /* кнопка, начинающая воспроизведение mp3-файла */ btn_stop.visible = false; btn_start.addEventListener(MouseEvent.CLICK, onStart); function onStart(event:MouseEvent):void { btn_start.visible = false; btn_stop.visible = true; /* запускаем проигрывание звукового файла */ sound.start(); /* обновляем данные о процессе воспроизведения звукового файла */ addEventListener(Event.ENTER_FRAME, onEnterFrames); } /* кнопка, останавливающая воспроизведение mp3-файла */ btn_stop.addEventListener(MouseEvent.CLICK, onStop); function onStop(event:MouseEvent):void { btn_start.visible = true; btn_stop.visible = false; /* останавливаем проигрывание звукового файла */ sound.stop(); /* останавливаем обновление данных */ removeEventListener(Event.ENTER_FRAME, onEnterFrames); } /* выводим информацию в текстовое поле */ function onEnterFrames(event:Event):void { txt.text = "duration - " + sound.duration + "\npositionMs - " + sound.positionMs + "\nposition - " + sound.position + "\nsizeLoaded - " + sound.sizeLoaded; }

Результат:

Имеются специальные свойства и для отслеживания процесса загрузки mp3-файла:

sizeLoadedBytes - возвращает число загруженных байтов информации;

sizeTotal - возвращает общий размер mp3-файла в байтах;

sizeLoaded - возвращает значение в интервале от 0 (нет загруженной информации) до 1 (конец загрузки), которое характеризует текущий процесс загрузки звукового файла.

Код ActionScript 3.0:

/* импорт классов */ import com.neriksworkshop.lib.ASaudio.*; /* создаём объект класса Track, с помощью которого можно загрузить mp3-файл и управлять его воспроизведением */ var sound:Track = new Track("content/kuranty.mp3"); /* кнопка, начинающая воспроизведение mp3-файла */ btn_stop.visible = false; btn_start.addEventListener(MouseEvent.CLICK, onStart); function onStart(event:MouseEvent):void { btn_start.visible = false; btn_stop.visible = true; /* запускаем проигрывание звукового файла */ sound.start(); /* обновляем данные о процессе воспроизведения звукового файла */ addEventListener(Event.ENTER_FRAME, onEnterFrames); } /* кнопка, останавливающая воспроизведение mp3-файла */ btn_stop.addEventListener(MouseEvent.CLICK, onStop); function onStop(event:MouseEvent):void { btn_start.visible = true; btn_stop.visible = false; /* останавливаем проигрывание звукового файла */ sound.stop(); /* останавливаем обновление данных */ removeEventListener(Event.ENTER_FRAME, onEnterFrames); } /* выводим информацию в текстовое поле */ function onEnterFrames(event:Event):void { txt.text = "sizeLoaded - " + sound.sizeLoaded + "\nsizeLoadedBytes - " + sound.sizeLoadedBytes + "\nsizeTotal - " + sound.sizeTotal; }

Результат:

И это ещё далеко не все возможности, которые предоставляет разработчикам библиотека ASaudio. Но, откровенно говоря, меня написание этого поста уже утомило и я беру паузу :-)

Обещанные ранее исходники - скачать исходники к данному уроку (под Adobe Flash CS 5.5).

Продолжение следует :-)

Автор: admin

Дата добавления: 2012-08-03

Просмотров: 4599

Рейтинг поста: +9-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-04-18
Ограничение политики безопасности. Раньше (я не очень внимательно слежу за обновлением флеш-плеера), для того, чтобы работала загрузка файлов со сторонних сайтов, на самих этих сайтах должен быть файл crossdomain.xml, открывающий доступ к файлам.
Комментатор
Комментарий добавил(а): Дмитрий
Дата добавления: 2014-04-18
Подскажите, пожалуйста, как вставить звук не из папки, а из сети? Вставляю url ссылку, не работает.
Заранее спасибо!
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-10-17
Дмитрий, стандартный способ подробно описан в мануале и "Библии" (см. в разделе "Скачать" этого блога), но только он трудоёмкий и неудобный. Как я понимаю, вы хотите с комфортом управлять звуком, который уже встроен в флеш-проект. Тогда рекомендую обратить внимание на библиотеку SoundSkin - http://edapskov.ru/pages.php?id=241 . Думаю, она вам больше понравится :-)
Комментатор
Комментарий добавил(а): Дмитрий
Дата добавления: 2013-10-17
Добрый день! А не подскажите как сделать для AS3 кнопку вкл./выкл звука без добавления классов всяких. Нужно просто при нажатии уводить громкость со значением 0(тишина) и 1(полная громкость). В AS3 не работает ряд способов типа setVolume, attachSound и т.д. Из-за этого трудности возникли.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика