Синхронизация Java Visualizer Audio и Visual
Я столкнулся с проблемой создания визуализатора для файлов.mp3 в Java. Моя цель состоит в том, чтобы создать визуализацию, которая запускается во времени с воспроизводимым файлом.mp3.
В настоящее время я могу визуализировать.mp3 ИЛИ воспроизвести его, но не оба одновременно. Я использую библиотеки, которые могут сделать это сложнее, чем необходимо.
Я сейчас:
- Читайте в.mp3 как FileInputStream.
- a) Преобразуйте FileInputStream в битовый поток и запустите визуализатор ИЛИ b) Передайте FileInputStream в метод Play библиотеки, где он преобразует его в битовый поток, декодирует его и воспроизводит.
Я использую библиотеку JLayer для воспроизведения и декодирования.mp3.
У меня вопрос: как мне синхронизировать два действия, чтобы я мог выполнять оба действия одновременно и они выстраивались в линию (чтобы мои визуализации соответствовали изменяющимся частотам). Это подразумевает, что они заканчивают одновременно.
2 ответа
Я бы попытался настроить каждую часть в потоке, а затем синхронизировать элементы синхронизации, чтобы они запускались одновременно.
В настоящее время я работаю над тем же, и я нашел решение.
Проблема: синхронизированные методы и атрибуты, которые не разрешают доступ paraell.
Решение: два потока в одной группе потоков и синхронизация по этой группе потоков.
или *: пул кэшированных потоков для запуска и синхронизации в этом пуле. тогда ваш потоковый ридер работает один, а ваша визуализация - второй.
Работает просто отлично.