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).
Продолжение следует :-)