Так что код работает просто отлично, на случай, если у кого-то тоже возникнут такие проблемы

аюсь сделать mp3-плеер в Java, и я не могу понять, как контролировать громкость в нем.

Я пробовал что-то вроде этого:

         // Adjust the volume on the output line.
         if (dataLine.isControlSupported(FloatControl.Type.MASTER_GAIN)) {
             FloatControl volume = (FloatControl) dataLine.getControl(FloatControl.Type.MASTER_GAIN);
            volume.setValue(100.0F);
         }

Все, что я написал до тех пор, пока этот код не работал нормально, но, очевидно, dataLine НЕ поддерживается управляющим элементом, потому что он перепрыгивает через этот оператор IF.

У меня такой вопрос: есть ли у вас идеи, почему это происходит, и как я могу обойти эту проблему, чтобы контролировать громкость своего приложения?

Ответы на вопрос(2)

dataLine.getControls() вернусь ?

Получает набор элементов управления, связанных с этой линией. Некоторые элементы управления могут быть доступны только при открытой линии. Если элементов управления нет, этот метод возвращает массив длины 0.

Если вы хотите объем, вы не хотите проверить наFloatControl.Type.VOLUME контролировать?

 Liviu12 янв. 2011 г., 14:23
dataLine.getControls () возвращает это мастер-усиление с текущим значением: 0,0 дБ (диапазон: -80,0 - 6,0206). Управление отключением звука с текущим значением: False Balance с текущим значением: 0,0 (диапазон: -1,0 - 1,0) Панорамирование с текущим значением: 0,0 (диапазон: -1,0 - 1,0) Ive been messing with my code in the meantime and realized that the Master Gainзначения на самом деле изменились, но я не могу слышать какие-либо каны в песне

Я нашел свой беспорядок. Я на самом деле забыл вызвать функцию dataLine.open (audioFormat), которая получает системные ресурсы.

Так что код работает просто отлично, на случай, если у кого-то тоже возникнут такие проблемы

Ваш ответ на вопрос