023. Пользовательский интерфейс Avalonia - Создание панели громкости в режиме реального времени
00:00 Запуск Avalonia на Windows • Программа Avalonia должна быть кроссплатформенной и работать на Windows. • Проект открыт в Visual Studio, приложение для настольных компьютеров запускается. • Звук не воспроизводится, но микрофон работает нормально. 00:38 Добавление панели регулировки громкости • Планируется добавить панель регулировки громкости с анимацией. • Идея: белый цвет расширяется вверх, затем появляется красный при достижении определённой линии. 01:07 Настройка ViewModel • Добавление новой частной собственности для высоты панели регулировки громкости. • Высота контейнера volume задаётся в коде, а не в конструкторе. 02:44 Создание панели регулировки громкости в конструкторе • Создание панели регулировки громкости с именем volume bar. • Связывание высоты полосы громкости с высотой отскока полосы громкости. 04:21 Настройка высоты панели регулировки громкости • Определение высоты панели регулировки громкости в обратном вызове данных. • Расчёт высоты панели на основе уровня громкости в децибелах. 06:04 Исправление ошибок в отображении • Проблема с отображением панели регулировки громкости из-за отсутствия привязки. • Обновление устройства и проверка захвата микрофона. 09:28 Оптимизация отображения панели • Вертикальное выравнивание панели регулировки громкости. • Медленное обновление значений громкости. 10:39 Улучшение отображения стрелки регулировки громкости • Расчёт высоты стрелки регулировки громкости на основе уровня громкости. • Стрелка становится более отзывчивой, но частота обновления остаётся низкой. 11:57 Настройка частоты обновления • Настройка частоты обновления сервиса захвата. • На Mac частота обновления по умолчанию выше, чем на Windows. • Смягчение слишком быстрой частоты обновления. 12:46 Настройка плавности движений • Обсуждение необходимости замедления периода для достижения плавности движений. • Упоминание о возможном увеличении числа до двадцати для достижения желаемого результата. 13:56 Усреднение значений • Применение среднего значения из трёх для сглаживания движений. • Идея удвоения среднего значения для другой стрелки. 14:31 Замедление обновления текста • Предложение использовать счётчик для обновления текста каждые три раза. • Реализация счётчика обновлений для текста и графиков. 17:07 Инверсия значений • Необходимость инверсии значений для правильного отображения громкости. • Объяснение использования поддельных значений для наглядности. 17:48 Ограничение значений • Ограничение максимального значения в пользовательском интерфейсе до 60. • Настройка высоты шкалы громкости и контейнера громкости. 19:00 Работа с аудиосервисом • Переработка кода для повторного использования аудиосервиса. • Добавление функций запуска и остановки записи. 22:21 Инициализация и освобождение устройств • Инициализация захвата звука с определённого устройства. • Освобождение ресурсов при остановке записи. 23:57 Проверка интерфейса • Проверка работы интерфейса после всех изменений. • Подготовка к добавлению графика. 24:15 Исследование графиков • Обзор документации Skia и Avalonia для построения графиков. • Упоминание обновлений и новых возможностей. 26:01 Работа с образцами • Изучение образцов и предварительного просмотра. • Оценка улучшений в документации и образцах. 26:13 Начало обсуждения рисования • Обсуждение рисования в целом, а не только графиков. • Упоминание шаблонов данных, рутины и пользовательских стилей. 26:29 Анализ образцов • Образцы не соответствуют ожиданиям. • Отсутствие конкретных решений в имеющихся образцах. 26:42 Поиск решений • Проверка наличия графиков в доступных решениях. • Поиск дополнительных ресурсов через Google. 27:15 Специфические требования • Необходимость рисования кривых в пользовательском интерфейсе. • Использование специфически настроенного элемента управления. • Возможность полного контроля над процессом рисования. 27:56 Начало реализации • Начало работы над программированием, графикой и анимацией. • Создание эллипсов, линий, многоугольников и графиков. • Планирование создания специального элемента управления для передачи аудиоданных. 27:56 Заключение • Подведение итогов обсуждения. • Надежда на полезность материала. • Анонс следующего выпуска.
00:00 Запуск Avalonia на Windows • Программа Avalonia должна быть кроссплатформенной и работать на Windows. • Проект открыт в Visual Studio, приложение для настольных компьютеров запускается. • Звук не воспроизводится, но микрофон работает нормально. 00:38 Добавление панели регулировки громкости • Планируется добавить панель регулировки громкости с анимацией. • Идея: белый цвет расширяется вверх, затем появляется красный при достижении определённой линии. 01:07 Настройка ViewModel • Добавление новой частной собственности для высоты панели регулировки громкости. • Высота контейнера volume задаётся в коде, а не в конструкторе. 02:44 Создание панели регулировки громкости в конструкторе • Создание панели регулировки громкости с именем volume bar. • Связывание высоты полосы громкости с высотой отскока полосы громкости. 04:21 Настройка высоты панели регулировки громкости • Определение высоты панели регулировки громкости в обратном вызове данных. • Расчёт высоты панели на основе уровня громкости в децибелах. 06:04 Исправление ошибок в отображении • Проблема с отображением панели регулировки громкости из-за отсутствия привязки. • Обновление устройства и проверка захвата микрофона. 09:28 Оптимизация отображения панели • Вертикальное выравнивание панели регулировки громкости. • Медленное обновление значений громкости. 10:39 Улучшение отображения стрелки регулировки громкости • Расчёт высоты стрелки регулировки громкости на основе уровня громкости. • Стрелка становится более отзывчивой, но частота обновления остаётся низкой. 11:57 Настройка частоты обновления • Настройка частоты обновления сервиса захвата. • На Mac частота обновления по умолчанию выше, чем на Windows. • Смягчение слишком быстрой частоты обновления. 12:46 Настройка плавности движений • Обсуждение необходимости замедления периода для достижения плавности движений. • Упоминание о возможном увеличении числа до двадцати для достижения желаемого результата. 13:56 Усреднение значений • Применение среднего значения из трёх для сглаживания движений. • Идея удвоения среднего значения для другой стрелки. 14:31 Замедление обновления текста • Предложение использовать счётчик для обновления текста каждые три раза. • Реализация счётчика обновлений для текста и графиков. 17:07 Инверсия значений • Необходимость инверсии значений для правильного отображения громкости. • Объяснение использования поддельных значений для наглядности. 17:48 Ограничение значений • Ограничение максимального значения в пользовательском интерфейсе до 60. • Настройка высоты шкалы громкости и контейнера громкости. 19:00 Работа с аудиосервисом • Переработка кода для повторного использования аудиосервиса. • Добавление функций запуска и остановки записи. 22:21 Инициализация и освобождение устройств • Инициализация захвата звука с определённого устройства. • Освобождение ресурсов при остановке записи. 23:57 Проверка интерфейса • Проверка работы интерфейса после всех изменений. • Подготовка к добавлению графика. 24:15 Исследование графиков • Обзор документации Skia и Avalonia для построения графиков. • Упоминание обновлений и новых возможностей. 26:01 Работа с образцами • Изучение образцов и предварительного просмотра. • Оценка улучшений в документации и образцах. 26:13 Начало обсуждения рисования • Обсуждение рисования в целом, а не только графиков. • Упоминание шаблонов данных, рутины и пользовательских стилей. 26:29 Анализ образцов • Образцы не соответствуют ожиданиям. • Отсутствие конкретных решений в имеющихся образцах. 26:42 Поиск решений • Проверка наличия графиков в доступных решениях. • Поиск дополнительных ресурсов через Google. 27:15 Специфические требования • Необходимость рисования кривых в пользовательском интерфейсе. • Использование специфически настроенного элемента управления. • Возможность полного контроля над процессом рисования. 27:56 Начало реализации • Начало работы над программированием, графикой и анимацией. • Создание эллипсов, линий, многоугольников и графиков. • Планирование создания специального элемента управления для передачи аудиоданных. 27:56 Заключение • Подведение итогов обсуждения. • Надежда на полезность материала. • Анонс следующего выпуска.
