Vraag Terminalopdracht om het audiovolume in te stellen?


Ik heb een externe geluidskaart die meestal prima werkt, behalve dat wanneer het apparaat voor het eerst wordt aangesloten of wanneer ik mijn laptop aanzet, het volume op 100% wordt ingesteld. Dat is het totale systeemvolume, zoals weergegeven in de geluidsindicator.

Wat ik zoek is een terminalopdracht die dat volume op 50% zet, zodat ik het kan uitvoeren bij inloggen en me geen zorgen hoeft te maken dat de eerste audio die ik speel naar mij zal schallen als ik vergeet om te draaien het volume lager. Met welke commando's kun je dat volume veranderen, dat wil zeggen dat in de geluidsindicator?

Ik heb wat rondgereden in gsettings en dbus, maar ik heb niets gevonden waarmee ik het systeemvolume zo kon instellen. Ik weet wel wat alsamixer is, maar dat is niet de oplossing waar ik naar op zoek ben, want daarmee kan ik het volume niet veranderen met de geluidsindicator of de multimediatoetsen van mijn laptop.


86
2018-01-23 22:37


oorsprong


@rajagenupula wil hij hetzelfde volume verlagen als de GUI. ALSA zou in dit geval niet werken omdat het niet wordt gecontroleerd door ALSA, maar Pulseaudio. i.stack.imgur.com/9C8Z2.png - Braiam
Zie ook hier: askubuntu.com/questions/44680/... - Takkat


antwoorden:


Delen van dit antwoord komen uit Het volume van de microfooninvoer instellen met behulp van de opdrachtregel?, hier geplaatst voor uw gemak.

Verhoog het volume met 5% 

amixer -D pulse sset Master 5%+

Verlaag het volume met 5% 

amixer -D pulse sset Master 5%-

Volume instellen op 50% 

amixer -D pulse sset Master 50%

Als u ALSA gebruikt, kan amixer nuttig zijn voor uw script   programmering.

Bij het laten vallen van de amixer --help commando in een terminal die je ziet   iets zoals dit:

enter image description here

Afhankelijk van je geluidskaart kunnen de niveaus afwijken van die van mij, maar   je kunt gebruiken alsamixer in de terminal om te controleren welke niveaus   en welke functies op uw geluidskaart u kunt gebruiken om een ​​opdracht in te stellen   het volume naar wens.

enter image description here

In mijn voorbeeld, met mijn belangrijkste geluidskaart (ik heb er 2: de embedded   en een PCI-geluidskaart), niveaus zijn van 0 tot 100, op deze manier kan ik veranderen   het volume van een gewenste invoer / uitvoer in mijn geluidskaart door te laten vallen in a   terminal de volgende opdracht:

amixer -c 0 set Front 50DB 
amixer -c 0 set Front 64DB 

In de eerste opdracht zal het resultaat de uitvoer van het voorpaneel instellen op   78% niveau en de tweede zet de uitgang op het voorpaneel op 100%   niveau.

Om informatie te verzamelen met betrekking tot je mixerbedieningen, drop   de amixer commando zonder parameters en je krijgt een lijst. Of   geef aan met welk geluidsapparaat u een lijst met bedieningselementen wilt zien    amixer -c X (waarbij "X" het nummer van uw audioapparaat is).

BTW: Vergeet niet dat DB-waarden logaritmisch worden berekend en niet   lineair.

Houd er rekening mee dat met deze opdracht u parameters kunt besturen op elk geluidsapparaat dat u op dat moment gebruikt.

Succes!


109
2018-01-23 23:11



Het is de moeite waard om op te merken dat als u geen "Master" -controller of "Master" -controller hebt, het werkelijke uitgangsvolume niet kan veranderen, u waarschijnlijk met een verkeerde geluidskaart werkt. F6 op alsamixer en --card n op amixer verander geluidskaart. - Pooyan Khosravi
Dat is een goed punt! @PooyanKhosravi, zelfs als je de geluidskaart die je wilt automatiseren vanaf de opdrachtregel kunt oproepen door de "-c X" te laten vallen (waarbij "X" het nummer van je geluidskaart is), is het goed om te weten welke informatie je hebt verstrekt. Veel dank! - Geppettvs D'Constanzo
pactl (in tegenstelling tot amixer) maakt het mogelijk om het volume met meer dan 100% te verhogen (inzien pavucontrol) :-) - pevik


Je kunt het doen met behulp van PulseAudio zelf (ik raad het gebruik van ALSA af omdat je dan de GUI niet kunt gebruiken om het volume hoger of lager te krijgen).

Gebruik makend van pactl: u kunt de volumes voor een specifiek apparaat als volgt instellen:

pactl set-sink-volume 0 +10%

Hierdoor wordt het volume met 10% verhoogd. Als je het 10% wilt verlagen:

pactl set-sink-volume 0 -10%

Als u het volume op 50% nodig heeft:

pactl set-sink-volume 0 50%

Als je de hele plaats moet rocken:

pactl set-sink-volume 0 150%

U kunt percentages of gehele getallen gebruiken, maar de gehele getallen zijn traag en zijn misschien niet uw ding.

pactl/pacmd (in tegenstelling tot amixer) maakt het mogelijk om het volume met meer dan 100% te verhogen :-).


68
2017-11-22 13:27



Als je een koptelefoon gebruikt, probeer dan de nul tot één te verhogen: pactl set-sink-volume 1 50% - Smile4ever
Als u dezelfde opdrachten op verschillende hosts met verschillende sinks wilt delen, kunt u deze gebruiken @DEFAULT_SINK@ als een gootsteen in plaats van nummer 0. U stelt uw standaard sink in pactl set-default-sink my-sink-name (lijstnamen met pactl list short sinks). - pevik
Wanneer ik gebruik -- je noemde, zoals pactl set-sink-volume 0 -- -10%, Krijg ik een foutmelding "Ongeldige volume-specificatie". Ik denk dat het antwoord moet worden gecorrigeerd. - jojman
@jojman blijkbaar hebben ze dat opgelost. Ziet changelogs voor de oplossing. Hier is de oplossing bugs.freedesktop.org/show_bug.cgi?id=77108 - Braiam


amixer set 'Master' 10%+- naar toename max geluid 10%

amixer set 'Master' 10%-- naar kleiner worden max geluid 10%

amixer set 'Master' 10% - om 10% van het maximale geluid te krijgen

amixer set 'Master' 80% - om 80% van het maximale geluid te krijgen

.. enz.

Als u het volume anders dan 'Master' wilt instellen, controleert u de lijst op:

amixer scontrols


Misschien wilt u ook uitchecken alsamixer en pacmd


22
2017-11-22 13:22