Что делает этот инструмент
Медиаплеер воспроизводит аудио и видео с вашего устройства. Плейлист через выбор файлов или drag-and-drop, переход по трекам кликом, управление воспроизведением, перемоткой, громкостью и режимом повтора (нет, все, один). Режим перемешивания случайный порядок воспроизведения. Воспроизведение в браузере — без загрузки на сервер. Использует blob URL для загрузки файлов из памяти.
Как использовать
- Добавьте файлы — Выбор или перетаскивание аудио/видео (MP3, MP4 и т.д.).
- Плейлист — Файлы в плейлисте. Клик по треку для воспроизведения.
- Управление — Воспроизведение, пауза, перемотка, громкость. Режим повтора: нет, все или текущий трек.
- Перемешать — Включение для случайного порядка (Fisher-Yates).
- Удаление — Удаление треков из плейлиста. Blob URL освобождаются для экономии памяти.
- Полный экран — Видео в полноэкранном режиме при возможности.
Как это работает
Каждый файл оборачивается как MediaItem (ссылка на File, отображаемое имя, тип, blob URL). URL.createObjectURL(file) создаёт временный blob URL для HTML5 video/audio. Контент не отправляется на сервер. При удалении элемента плейлиста или размонтировании компонента вызывается URL.revokeObjectURL() для предотвращения утечек памяти. Перемешивание через Fisher-Yates для равномерно случайного порядка. Режимы повтора: нет (остановка после последнего), все (возврат к первому), один (повтор текущего).
Все вычисления выполняются в браузере. Никакие данные не отправляются на сервер.
Примеры использования
- Локальная музыка — Воспроизведение MP3 с устройства.
- Превью видео — Быстрый просмотр локальных видео.
- Подкасты — Очередь и воспроизведение эпизодов.
- Презентации — Фоновое аудио или видео.
- Тестирование — Проверка корректности воспроизведения медиафайлов.
Пример
- Добавлены song1.mp3, song2.mp3 → Плейлист из двух треков.
- Перемешать вкл → Порядок воспроизведения случаен.
- Повтор: один → Текущий трек повторяется до смены.
Ограничения
- Поддержка форматов — Зависит от браузера и ОС (MP4, WebM, MP3 и т.д.).
- Blob URL — Должны освобождаться при удалении/размонтировании для избежания утечек.
- Без стриминга — Файлы загружаются в память; очень крупные файлы могут загружаться медленно.
- Same-origin — Blob URL same-origin; кросс-доменное воспроизведение недоступно.