Как стать автором
Обновить

Работаем с аудио: прогресс и визуализация данных

Время на прочтение6 мин
Количество просмотров16K


Доброго времени суток, друзья!

Хочу поделиться опытом работы с аудио. Под «аудио» я подразумеваю HTMLAudioElement и Web Audio API.

Что будем делать?

Мы создадим нечто вроде плеера для одного трека (о полноценном проигрывателе — в одной из следующих статей).

Условия:

  • Возможность загрузки файла из любого места на жестком диске как по нажатию кнопки, так и перетаскиванием.
  • Круговой графический и текстовый индикаторы прогресса.
  • Текстовый индикатор громкости звука.
  • Визуализация аудио данных.
  • Управление плеером с помощью клавиатуры.

В сети полно материалов как по HTMLAudioElement, так и по WAAPI, поэтому я сделаю акцент на практической составляющей. Кроме аудио, мы будем работать с drag-drop и canvas.

Без дальнейших предисловий…
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии12

Иллюзия времени

Время на прочтение13 мин
Количество просмотров33K

Мой дедушка был часовщиком. Когда я был ребенком, я мог подолгу сидеть возле его большого деревянного стола, наблюдая за тем, как он собирает все эти механизмы, состоящие из десятков мельчайших деталей. Все его терпение, решительность и точность, которые он вкладывал в каждую деталь своих механизмов всегда восхищали меня.
Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии13

Анимированный прогресс-бар субъективно ускоряет загрузку

Время на прочтение1 мин
Количество просмотров5.1K
На конференции ACM, посвящённой человеческому фактору в компьютерных системах, cпециалисты из университета Карнеги-Меллона представят интересное исследование, которое посвящено разнообразным визуальным иллюзиям для компьютерных интерфейсов.

Например, одна из иллюзий позволяет примерно на 10% «ускорить» прогресс-бар с помощью ритмичной анимации вдоль полосы загрузки (см. видео).

Имеется в виду сокращение субъективного времени. Как показали опыты, наблюдающие такой прогресс-бар люди говорят, что загрузка прошла примерно на 10,5% быстрее, чем те, кто наблюдал обычную полосу загрузки без анимации.
Читать дальше →
Всего голосов 76: ↑63 и ↓13+50
Комментарии56

Прогресс выполнения тяжелой задачи в PHP

Время на прочтение6 мин
Количество просмотров51K
Случилось мне как-то иметь дело с тяжелым PHP-скриптом. Нужно было каким-то образом в браузере отображать прогресс выполнения задачи в то время, пока в достаточно длительном цикле на стороне PHP проводились расчёты. В таких случаях обычно прибегают к периодичному выводу строки вроде этой:

<script>document.getElementById('progress').style.width = '1%';</script>

Этот вариант меня не устраивал по нескольким причинам, к тому же мне в принципе не нравится такой подход.
Читать дальше →
Всего голосов 48: ↑31 и ↓17+14
Комментарии45

Еще один кейс на PHP. Скачиваем базу данных из открытого API

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров4K

Решать задачу будем на примере каталога исторических экспонатов Музейного фонда РФ. API каталога является общедоступным сервисом. Сначала нам нужно будет сформировать ссылку на скачивание архива ZIP с информацией. Сделать это нужно аккуратно, так, чтобы изменения в названиях файлов, которые могут время от времени случаться, не повлияли на работоспособность нашего скрипта.

Затем, мы создадим шакалу загрузки, или прогресс‑бар, как ее еще называют, чтобы отслеживать процесс скачивания. Экспонатов много, каталог большой: «весит» он более 5 Гб. Без индикации загрузки пользователь может недоумевать, почему ничего не происходит и консоль просто висит долгое время. Наконец, скачаем файл из API, который потом можем разобрать по таблицам своей базы в том виде, в котором понадобится.

Читать далее
Всего голосов 16: ↑8 и ↓80
Комментарии9