Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2018-12-22 19:26:47

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

[ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Da się wyciszyć dźwięk dla skrótem klawiszowym konkretnej aplikacji, tj. bez wyciszenia innych aplikacji? Chodzi o  środowisko Plasma 5.

Ostatnio edytowany przez gnomek (2018-12-23 17:19:21)

Offline

 

#2  2018-12-22 22:26:09

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Da się ;)

Offline

 

#3  2018-12-23 10:55:16

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

[quote=yossarian]Da się ;)[/quote]
Dzięki za informację. Od razu poczułem się lepiej.

Znalazłem jakieś informacje na ten temat
https://stackoverflow.com/questions/39736580/look-up-pulseaudio-sink-input-index-by-property

i jeszcze coś takiego
https://github.com/acrisci/playerctl

ale nie wiem jak się do tego zabrać.

Ostatnio edytowany przez gnomek (2018-12-23 11:34:21)

Offline

 

#4  2018-12-23 12:27:51

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

O jaką aplikację chodzi?

Tu masz przykład, którego kiedyś używałem dla MPD:

#!/bin/sh
app_name="Music Player Daemon"

current_sink_num=''
sink_num_check=''
app_name_check=''

pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
        if [ "$app_name_check" = "$app_name" ]; then
            echo "$current_sink_num" "$app_name_check"

            pactl set-sink-input-mute "$current_sink_num" toggle
        fi
    fi
done[/quote]
Modyfikujesz do swoich potrzeb — wybór aplikacji (znajdziesz w wynikach  [tt]pactl list sink-inputs[/tt]) i potem pozostaje już tylko podpięcie takiego skryptu pod odpowiedni skrót klawiaturowy.

Offline

 

#5  2018-12-23 16:12:54

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Udało się. Bardzo dziękuję.

Offline

 

#6  2018-12-23 16:30:43

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Ten playerctl jest nawet w debianie i nawet ciekawe to jest -- taki tekstowy pauvcontrol. xD

Offline

 

#7  2018-12-23 16:48:19

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

[quote=morfik]Ten playerctl jest nawet w debianie i nawet ciekawe to jest — taki tekstowy pauvcontrol. xD[/quote]
To tylko interfejs do obsługi odtwarzaczy multimedialnych.
Z Pulseaudio (i ogólnie systemem dźwięku) nie ma żadnego związku.

Coś jak [deb]mpc[/deb] dla MPD.

Offline

 

#8  2018-12-23 16:49:49

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

A jednak nie całkiem działa. Chciałem użyć tego dla Spotify. I działa jeśli się wpisze prawidłowo current_sink_num=''
Problem jest jednak taki, że Spotify ciągle zmienia ten numer.

Znalazłem info, że Spotify ma skrót dla mute: Ctrl-Shift-Down
https://support.spotify.com/is/using_spotify/system_settings/keyboard-shortcuts/

Tyle, że nie wiem jak go wysłać do aplikacji z systemu / z Plasmy.

Offline

 

#9  2018-12-23 16:51:26

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

[quote=gnomek]A jednak nie całkiem działa. Chciałem użyć tego dla Spotify. I działa jeśli się wpisze prawidłowo current_sink_num=''
Problem jest jednak taki, że Spotify ciągle zmienia ten numer.

Znalazłem info, że Spotify ma skrót dla mute: Ctrl-Shift-Down
https://support.spotify.com/is/using_spotify/system_settings/keyboard-shortcuts/

Tyle, że nie wiem jak go wysłać do aplikacji z systemu / z Plasmy.[/quote]
No MPD też ciągle zmienia (co utwór) i ten skrypt jest właśnie po to by sprawdzał na bieżąco.

Pokaż jak on u ciebie wygląda.

Offline

 

#10  2018-12-23 16:52:57

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

[quote=yossarian][quote=morfik]Ten playerctl jest nawet w debianie i nawet ciekawe to jest — taki tekstowy pauvcontrol. xD[/quote]
To tylko interfejs do obsługi odtwarzaczy multimedialnych.
Z Pulseaudio (i ogólnie systemem dźwięku) nie ma żadnego związku.

Coś jak [deb]mpc[/deb] dla MPD.[/quote]
No tak czy inaczej można przy jego pomocy operować dźwiękiem playerów i sobie ściszać/zgłaszać/mutować konkretne appki. xD

Ostatnio edytowany przez morfik (2018-12-23 16:53:46)

Offline

 

#11  2018-12-23 16:54:44

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

No jak w każdym odtwarzaczu ;)

Offline

 

#12  2018-12-23 16:55:51

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Smplayer raczej nie ściszy amaroka. xD

Offline

 

#13  2018-12-23 16:57:23

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Kod:

#!/bin/sh
app_name="Spotify"

current_sink_num='4'
sink_num_check=''
app_name_check=''

pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
        if [ "$app_name_check" = "$app_name" ]; then
            echo "$current_sink_num" "$app_name_check"

            pactl set-sink-input-mute "$current_sink_num" toggle
        fi
    fi
done

Kod:

pacmd list-sink-inputs
1 sink input(s) available.
    index: 4
        driver: <protocol-native.c>
        flags: START_CORKED 
        state: RUNNING
        sink: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo>
        volume: front-left: 65535 / 100% / -0,00 dB,   front-right: 65535 / 100% / -0,00 dB
                balance 0,00
        muted: no
        current latency: 537,78 ms
        requested latency: 980,00 ms
        sample spec: s16le 2 k 44100 Hz
        channel map: front-left,front-right
                     Stereo
        resample method: (null)
        module: 13
        client: 124 <Spotify>
        properties:
                media.role = "music"
                media.name = "Spotify"
                application.name = "Spotify"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "14081"
                application.process.user = "gnomek"
                application.process.host = "gnomek-pc"
                application.process.binary = "spotify"
                window.x11.display = ":0"
                application.language = "pl_PL.UTF-8"
                application.process.machine_id = "44df6c1d58a049cda85bcaf8b0fe6daf"
                application.process.session_id = "1"
                application.icon_name = "spotify-client"
                module-stream-restore.id = "sink-input-by-media-role:music"

Ostatnio edytowany przez gnomek (2018-12-23 16:59:43)

Offline

 

#14  2018-12-23 16:59:00

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

[quote=morfik]Smplayer raczej nie ściszy amaroka. xD[/quote]
Ale przecież playerctl to nie kolejny odtwarzacz, tylko interfejs do zarządzania odtwarzaczami.
Na podobnej zasadzie działają fizyczne klawisze Play, Pause, Next itp.

@gnomek:
Jak tam ręcznie na sztywno przypisujesz wartość zmiennej "current_sink_num" to w jaki sposób ma to niby działać? ;)

#!/bin/sh
app_name="Spotify"

current_sink_num=''
sink_num_check=''
app_name_check=''

pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
        if [ "$app_name_check" = "$app_name" ]; then
            echo "$current_sink_num" "$app_name_check"

            pactl set-sink-input-mute "$current_sink_num" toggle
        fi
    fi
done[/quote]

Offline

 

#15  2018-12-23 17:03:12

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

> Jak tam ręcznie na sztywno przypisujesz wartość zmiennej "current_sink_num" to w jaki sposób ma to niby działać? ;)

To jak? Może to się da użyć? Ale nie wiem jak.

Kod:

pacmd list-sink-inputs |
tr '\n' '\r' |
perl -pe 's/ *index: ([0-9]+).+?application\.name = "([^\r]+)"\r.+?(?=index:|$)/\2:\1\r/g' |
tr '\r' '\n'

Tak na czysto:

Kod:

#!/bin/sh
app_name="Spotify"

current_sink_num=''
sink_num_check=''
app_name_check=''

pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
        if [ "$app_name_check" = "$app_name" ]; then
            echo "$current_sink_num" "$app_name_check"

            pactl set-sink-input-mute "$current_sink_num" toggle
        fi
    fi
done

to nie działa.

Ostatnio edytowany przez gnomek (2018-12-23 17:04:50)

Offline

 

#16  2018-12-23 17:04:25

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

[quote=gnomek]> Jak tam ręcznie na sztywno przypisujesz wartość zmiennej "current_sink_num" to w jaki sposób ma to niby działać? ;)

To jak? Może to się da użyć? Ale nie wiem jak.

Kod:

pacmd list-sink-inputs |
tr '\n' '\r' |
perl -pe 's/ *index: ([0-9]+).+?application\.name = "([^\r]+)"\r.+?(?=index:|$)/\2:\1\r/g' |
tr '\r' '\n'

[/quote]
Przecież miałeś tam gotowca — po co tworzysz jakieś nieistniejące problemy?

Offline

 

#17  2018-12-23 17:05:48

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Kod:

sh ten_skrypt
 Spotify
Nieprawidłowe określenie indeksu odpływu wejścia

Offline

 

#18  2018-12-23 17:07:07

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Pokaż aktualny wynik:

Kod:

pacmd list-sink-inputs

Offline

 

#19  2018-12-23 17:08:01

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Kod:

pacmd list-sink-inputs
1 sink input(s) available.
    index: 4
        driver: <protocol-native.c>
        flags: START_CORKED 
        state: RUNNING
        sink: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo>
        volume: front-left: 65535 / 100% / -0,00 dB,   front-right: 65535 / 100% / -0,00 dB
                balance 0,00
        muted: no
        current latency: 1027,46 ms
        requested latency: 980,00 ms
        sample spec: s16le 2 k 44100 Hz
        channel map: front-left,front-right
                     Stereo
        resample method: (null)
        module: 13
        client: 124 <Spotify>
        properties:
                media.role = "music"
                media.name = "Spotify"
                application.name = "Spotify"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "14081"
                application.process.user = "gnomek"
                application.process.host = "gnomek-pc"
                application.process.binary = "spotify"
                window.x11.display = ":0"
                application.language = "pl_PL.UTF-8"
                application.process.machine_id = "44df6c1d58a049cda85bcaf8b0fe6daf"
                application.process.session_id = "1"
                application.icon_name = "spotify-client"
                module-stream-restore.id = "sink-input-by-media-role:music"

Offline

 

#20  2018-12-23 17:09:30

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Miało być:

Kod:

pactl list sink-inputs

Skąd te pacmd w ogóle wziąłeś?

Offline

 

#21  2018-12-23 17:11:10

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Kod:

pactl list sink-inputs
4. odpływ wejścia
        Sterownik: protocol-native.c
        Właściciel modułu: 13
        Klient: 124
        Odpływ: 0
        Określenie próbki: s16le 2 k 44100 Hz
        Mapa kanałów: front-left,front-right
        Format: pcm, format.sample_format = "\"s16le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
        Zakorkowane: nie
        Wyciszenie: nie
        Poziom głośności: front-left: 65535 / 100% / -0,00 dB,   front-right: 65535 / 100% / -0,00 dB
                          balans 0,00
        Opóźnienie bufora: 1028231 us
        Opóźnienie odpływu: 578937 us
        Metoda resamplingu: nie dotyczy
        Właściwości:
                media.role = "music"
                media.name = "Spotify"
                application.name = "Spotify"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "14081"
                application.process.user = "gnomek"
                application.process.host = "gnomek-pc"
                application.process.binary = "spotify"
                window.x11.display = ":0"
                application.language = "pl_PL.UTF-8"
                application.process.machine_id = "44df6c1d58a049cda85bcaf8b0fe6daf"
                application.process.session_id = "1"
                application.icon_name = "spotify-client"
                module-stream-restore.id = "sink-input-by-media-role:music"

> Skąd te pacmd w ogóle wziąłeś?


Stąd
https://stackoverflow.com/questions/39736580/look-up-pulseaudio-sink-input-index-by-property

Offline

 

#22  2018-12-23 17:13:28

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Kod:

pactl set-sink-input-mute 4 toggle

Tak działa?

Stąd
https://stackoverflow.com/questions/39736580/look-u … x-by-property[/quote]
No ciężko nadążyć jak korzystasz z różnych sposobów w tym samym czasie.

Offline

 

#23  2018-12-23 17:14:58

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Kod:

pactl set-sink-input-mute 4 toggle

Działa.
Chyba te dwa polecenia pokazują to samego. Ale nie ważne.

Offline

 

#24  2018-12-23 17:16:21

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

[quote=gnomek]

Kod:

pactl set-sink-input-mute 4 toggle

Działa.[/quote]
Sprawdź tak:

#!/bin/sh
LANGUAGE="en_US"
app_name="Spotify"

current_sink_num=''
sink_num_check=''
app_name_check=''

pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
        if [ "$app_name_check" = "$app_name" ]; then
            echo "$current_sink_num" "$app_name_check"

            pactl set-sink-input-mute "$current_sink_num" toggle
        fi
    fi
done[/quote]

Offline

 

#25  2018-12-23 17:17:43

  gnomek - Użytkownik

gnomek
Użytkownik
Zarejestrowany: 2014-11-22

Re: [ROZWIĄZANY] wyciszenie dźwięku skrótem dla konkretnej aplikacji

Teraz działa. Pięknie dziękuję.

Rzeczywiście, w Spotify mam ustawiony angielski.

Ostatnio edytowany przez gnomek (2018-12-23 17:20:42)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.015 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00064 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.235.239.156' WHERE u.id=1
0.00262 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.235.239.156', 1593877627)
0.00037 SELECT * FROM punbb_online WHERE logged<1593877327
0.00032 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30779 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00194 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30779 ORDER BY p.id LIMIT 0,25
0.00521 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30779
Total query time: 0.0113 s