Потоковое/Не потоковое аудио
Во Flash предусмотрены возможности работы как с потоковым, так и с не потоковым аудио. Для начала разберём, как создаются объекты Sound:
var url_sound:Sound = new Sound();
Собственно вот мы и создали объект url_sound. Обратите внимание, что _sound — это суффикс объектов класса Sound, как и _mc для Movie Clip, и _txt для Text Field. Ещё раз напоминаю, на всякий случай, что суффиксы позволяют упростить и ускорить набор кода, т.к. автоматически выдают список всех встроенных функций и методов после точки «.» поставленной за нужным суффиксом.
Загрузка аудио файлов через loadSound
loadSound(URL,isStreaming)
1. URL — адрес подгружаемого аудио файла;
2. isStreaming — флаг, показывающий будет подгружаемое аудио потоковым или обычным. Может принимать значения либо true, либо flase. Потоковое — true. Обычное — false. Основной особенностью потокового аудио является то, что мы можем начать его прослушивание до полной загрузки файла. Например на всем известном MySpace используется именно потоковое аудио.
Основные свойства и методы Sound объектов во Flash
1. getBytesLoaded() — показывает сколько байт уже загрузилось;
2. getBytesTotal() — показывает общий размер аудио файла. К слову ,чтобы узнать сколько байт ещё осталось загрузить, нужно просто из второго параметра вычесть первый:
trace(“Осталось загрузить ещё байт “+(url_sound.getBytesTotal()-url_sound.getBytesLoaded()));
3. position — показывает в миллисекундах время проигрываемого сейчас фрагмента:
trace(“Сейчас проигрывается секунда номер “+(url_sound.position/1000));
4. duration — показывает общую продолжительность аудио файла в миллисекундах. Работая с потоковым аудио, следует учитывать, что duration показывает длительность уже загруженного фрагмента файла, а не общую продолжительность файла. Т.е. если длина вашего файла 10 секунд, а вы загрузили только 3 секунды, то duration будет показывать значение 3000. Примерную длину аудио файла можно вычислить следующим образом:
trace(“Общая длина файла примерно “+(url_sound.duration*getBytesTotal()/getBytesLoaded()/1000)+” секунд”);
5. start(secondsOffset,loops) — начинает воспроизведение файла. В случае с потоковым аудио, воспроизведение начинается автоматически после начала загрузки. secondsOffset — с какой секунды нужно начать воспроизведение. Указывается именно в секундах. loops — количество повторов воспроизведения трека. Так же можно использовать сокращённую запись start();
6. stop() — останавливает воспроизведение.
Подключаем звук из библиотеки
Так же есть возможность работать со звуком напрямую из вашей библиотеки Library. Для этого нужно использовать следующую запись:
lib_sound.attachSound(idName)
1. lib_sound — это имя Sound объекта, к которому мы прикрепляем нужный аудио файл из библиотеки. Сам объект lib_sound должен быть предварительно создан;
2. attachSound(idName) — метод прикрепляющий из библиотеки нужный файл. idName — это имя звука, которое задаётся во вкладке Linkage (выбираем нужный объект в библиотеке и жмём на него правой кнопкой мыши).
Когда проигрывание закончилось
Для того, чтобы отловить окончание воспроизведения файла, существует событие onSoundComplete. Например, следующая запись будет запускать сначала воспроизведение файла, сразу после окончания:
url_sound.onSoundComplete = function() {
trace(“Трек закончился и начинает проигрываться заново”);
this.start();
};
Описание получилось очень большим, но вроде, понятным, поэтому всё, что мне остаётся, так это выложить исходник и пример к уроку =)
Сама флешка » | Исходник » |
Я работаю во flash cs4(a.s.3) и меня со звуком возникает такая проблема:
ArgumentError: Error #2068: Недопустимый звуковой файл.
at flash.media::Sound/play()
at player/dg()
Ни с одним звуковым файлом не работает(в отличии от предыдущих версий флэш)
Даже хз что теперь делать((
Код выкладывать не буду, т.к. там много лишнего и всё сделано при помощи оф сайта. Т.ч. ошибок там нету =) Можете подсказать возможные причины?
извините, я просто так увлёкся кодом что положил музыку не в ту папку))
проблема решена
Спасибо дошло)