Управление громкостью (увеличение или уменьшение) в Java

Если вы реализуете подобное оболочке приложение, в котором пользователь вводит какую-то команду (например, , добавляет ), и ответ приложения (возвращает сумму), вы можете использовать модуль cmd, который обрабатывает все командные взаимодействия и диспетчеризацию для вас. Вот пример:

#!/usr/bin/env python

import cmd
import shlex
import sys

class MyCmd(cmd.Cmd):
    def do_add(self, arguments):
        '''add - Adds two numbers the print the sum'''
        x, y = shlex.split(arguments)
        x, y = int(x), int(y)
        print x + y

    def do_quit(self, s):
        '''quit - quit the program'''
        sys.exit(0)

if __name__ == '__main__':
    cmd = MyCmd()
    cmd.cmdloop('type help for a list of valid commands')

Вот пример запущенной сессии:

$ python cmd_tryout.py
введите help для получения списка допустимых команд
(Cmd) help add
add - Добавляет два числа для печати суммы
(Cmd) add 5 3
8
(Cmd) выйти

По приглашению (Cmd) вы можете ввести help команда, которую вы получаете бесплатно. Другими командами являются add и quit, которые соответствуют функциям do_add() и do_quit().

Обратите внимание, что команда help отображает строку документации для вашей функции. Строка документа представляет собой строку, следующую непосредственно за декларацией функции (см., Например, do_add()).

Модуль cmd не разбивает и не разбирает аргументы, поэтому вы должны сделать это самостоятельно. Функция do_add() иллюстрирует это.

Этого примера программы должно быть достаточно, чтобы вы начали. Для получения дополнительной информации просмотрите страницу справки cmd . Это просто настроить подсказку и другие аспекты вашей программы.

21
задан Radiodef 25 January 2019 в 14:31
поделиться

2 ответа

Если вы используете Java Sound API, вы можете установить громкость с помощью регулятора MASTER_GAIN .

import javax.sound.sampled.*;

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(
    new File("some_file.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
FloatControl gainControl = 
    (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(-10.0f); // Reduce volume by 10 decibels.
clip.start();
34
ответ дан 29 November 2019 в 20:21
поделиться

Вы можете регулировать громкость с помощью GainControl, попробуйте что-нибудь подобное после того, как вы открыли строку

FloatControl volume= (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN); 
10
ответ дан 29 November 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: