Лого Флэша Потрошителя
 
Новости · Статьи · Прототипы · Компоненты · Персоналии · Глоссарий · Идеальный клип · Что делать  
Чтение ID3-тэгов из файла .mp3
29.07.2002 24.09.2002

В Flash MX вы можете загружать внешний mp3-файл в flash-клип, используя метод Sound.loadSound(). В последней версии Flash Player 6 (имеется в виду версия 6.0.47.0 - прим. перев.) можно получить доступ к тэгам ID3, вшитым в файл mp3. К сожалению, вы не сможете прочитать значения тэгов ID3 в файле mp3, пока он не загрузится !полностью!. В этом нет ничего страшного, пока вы используете метод Sound.attachSound(), но вызывает проблемы, если вы начинаете загружать в проигрыватель внешний звук.

Когда внешний звук полностью загрузится в проигрыватель, должен проиграться один кадр, прежде чем вы сможете получить значения тэгов ID3 из mp3. Это означает, что нельзя получить значения тэгов ID3 в обработчиках событий onLoad для объектов класса Sound. Вот пример кода, демонстрирующий, как получить доступ к значениям тэгов ID3 внешнего mp3-файла, загруженного в Flash Player, используя метод Sound.loadSound():

//создаем событие onEnterFrame со свойствами Слушателя
ASBroadcaster.initialize(Movieclip);
_root.createEmptyMovieClip("__enterFrame",-9799);
__enterFrame.onEnterFrame=function(){
    Movieclip.broadcastMessage("onEnterFrame");
}
mysound=new Sound(this);
mysound.loadSound("an_mp3.mp3");
mysound.onLoad=function(){
    Movieclip.addListener(this);
    //переопределяем обработчик события onLoad
    this.onLoad=function(){
        //обрабатываем в цикле все ID3-тэги
        //и трассируем пары свойство: значение
        for(var i in this.id3){
            trace(i+":"+this.id3[i]);
        }
    }
    //когда получено сообщение onEnterFrame,
    //вызвать заново определенный обработчик события
    //onLoad, а затем прекратить слушать сообщения
    this.onEnterFrame=function(){
        this.onLoad();
        Movieclip.removeListener(this);
        delete this.onEnterFrame;
    }
}

То же самое можно сказать и о двух других свойствах звукового объекта — Sound.duration и Sound.position (общая длина звука и положение проигрывающей головки в данный момент.) Вы не сможете прочитать эти свойства до того, как будет проигран один кадр после загрузки всего звука. Можно использовать описанный выше процесс, чтобы извлекать значения этих двух свойств[1].

[новое окно]>

Дэдлайн

 

Примечания:
[1] Напишите Macromedia с просьбой исправления этих досадных недоразумений. Чем выше наша активность, тем скорее к нам прислушаются!

Статус документа
: публикация
>>> Статьи · Прототипы · Компоненты · Персоналии · Глоссарий · Что делатьНаверх
  © Разработка: Ростислав Сирык · О проекте "Флэш Потрошитель" · Архивы сайта
Flash MX

Стандарты Actionscript

Внутренняя архитектура Actionscript

Атрибуты тэгов OBJECT и EMBED

Метод LoadVars.decode

Свойство Stage.showMenu

System.security.allowDomain

System.showSettings

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

onKeyDown против onClipEvent(keyDown)

Модель событий Flash MX

ASBroadcaster — ядро модели событий Flash MX

Чтение ID3-тэгов из файла .mp3

ASSetPropFlags — функция защиты свойств объектов

Объект Local SharedObject

Удаление Local SharedObject

Глобальный путь к классам

Level против root

Dreamweaver

Создаем расширение для Dreamweaver MX

Настройка Dreamweaver MX

Длинное тире, короткое тире, дефис. Правописание и Dreamweaver

Illustrator

Растеризация текста
FlexiPedia