Если вы реализуете подобное оболочке приложение, в котором пользователь вводит какую-то команду (например, , добавляет ), и ответ приложения (возвращает сумму), вы можете использовать модуль 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 . Это просто настроить подсказку и другие аспекты вашей программы.
Если вы используете 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();
Вы можете регулировать громкость с помощью GainControl, попробуйте что-нибудь подобное после того, как вы открыли строку
FloatControl volume= (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);