Синхронизация Java Visualizer Audio и Visual - PullRequest
1 голос
/ 01 января 2011

Я столкнулся с проблемой при создании визуализатора для файлов .mp3 в Java. Моя цель состоит в том, чтобы создать визуализацию, которая запускается во времени с воспроизводимым файлом .mp3.

В настоящее время я могу визуализировать .mp3 ИЛИ воспроизводить его, но не оба одновременно. Я использую библиотеки, которые могут сделать это сложнее, чем необходимо.

Я сейчас:

  1. Считать в .mp3 как FileInputStream.
  2. a) Преобразовать FileInputStream в поток битов и запустить визуализатор ИЛИ б) передать FileInputStream в метод Play библиотеки, где он преобразует его в поток битов, декодирует его и воспроизводит.

Я использую библиотеку JLayer для воспроизведения и декодирования .mp3.

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

Ответы [ 2 ]

0 голосов
/ 06 июля 2013

Я сейчас работаю над тем же, и нашел решение.

Проблема : синхронизированные методы и атрибуты, которые не разрешают доступ к paraell.

Решение : два потока в одной группе потоков и синхронизация по этой группе потоков.

или *: пул кэшированных потоков для запуска и синхронизации в этом кэшированном пуле.тогда ваш потоковый ридер работает один, а ваша визуализация - второй.

Работает просто отлично.

0 голосов
/ 17 января 2011

Я бы попытался настроить каждую часть в потоке, а затем синхронизировать элементы синхронизации, чтобы они запускались одновременно.

...