Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > ActionScript 3 > Sound.extract() для больших файлов |
Автор: C4Grey 4.12.2011, 20:50 | ||||||
Приветствую С постройкой графика АЧХ(Waveform, а-ля soundcloud.com) разобрался, благо примеров в интернете гуляет много. Интересует как сделать то же для больших файлов - либо с большим битрейтом, либо большой длительности. Хотелось бы строить график по ходу загрузки звука, как такое можно провернуть? Есть пару идей: 1. Отлавливать ProgressEvent, смотреть bytesLoaded, писать по порциям в ByteArray чере sound.extract(), как-то так:
2. Строить график один раз, при загрузке на сервер и сохранять данные в XML или бинарник. Идея номер 2 менее ресурсоемкая, но сильно усложняет загрузку звуков для конечного пользователя(по идее, ему нужно только вставить URL и получить код плеера) и добавляет необходимость содержать сервер с данными по трекам. С первой тоже пока проблемы - никак не удается прочитать данные верно, может чего не так делаю. В общем, подскажите, пожалуйста, может у кого есть другие идеи, или варианты дял развития этих. P.S. Поправил код для вытягивания данных, там не байты а сэмплы(2 флоата) P.P.S. Вытянуть данные получилось, даже график можно построить, но зажать его в нужный размер никак не получается. Проблема в том, что до загрузки звука его полную длину получить не получается, а она нужна для получения соотношения "длина звука / длина мувика с графиком" - чтобы правильно строить в ряд линии, сответсвующие значению амплитуды. Вытягиваю данные так:
И построение графика:
Значение FStep подобрал эксперементально, верного графика с ним не построишь. |