Opções para o Pulseaudio:
1) Transmita a saída de mpg123
para paplay
, por exemplo, com algo como
mpg123 --stdout ... | paplay --rate=44100 --format=s16le --channels=2 --stream-name=Music --client-name=Musicplayer --volume=65536
Você pode definir o volume na linha de comando como acima ou definir o volume uma vez em pavucontrol
pelo nome do cliente e, na próxima vez em que o mesmo aplicativo for iniciado, ele se lembrará do volume. Portanto, se você usar nomes de clientes diferentes, digamos, Musicplayer
e Bellringer
, poderá pré-definir o volume de uma vez por todas, sem precisar alterar o Python.
2) Use outro programa para reproduzir arquivos MP3 que usam o Pulseaudio e pode definir o nome do cliente ou ter um nome de cliente reconhecível ou ter a opção de definir o volume. Por exemplo,
mplayer -volume=... ...
Então você tem as mesmas opções acima.
3) Use pamcd
ou pactl
para definir o volume do fluxo que está sendo reproduzido, por exemplo,
pacmd set-sink-input-volume 42 50%
Você pode usar algo semelhante a
pacmd list-sink-inputs | egrep '(index)|(name)'
para encontrar o índice numérico para um determinado fluxo ou nome de cliente. Ou analise a saída completa em Python.
4) Use a interface DBUS do Pulseaudio do Python. Isso exigirá alguma programação.
Eu não aconselho usar o Python com pexpect
para alterar o volume através da interface do usuário, que parece um kludge horrível, e não é realmente um "nível mais alto".