Tắt tiếng tắt tiếng Alsa và PulseAudio, nhưng chỉ tắt tiếng Alsa


20

Khi tôi nhấn phím tắt tiếng trên bàn phím, cả kênh chính Alsa và kênh chính PulseAudio đều bị tắt tiếng, nhấn lại chỉ tắt tiếng kênh chính alsa, kênh chính của pulseaudio sẽ bị tắt tiếng. Kết quả: không có âm thanh. Làm thế nào để tôi sửa nó?

Câu trả lời:


11

Chạy lệnh này:

amixer -D pulse set Master 1+ unmute

12
Bạn có thể giải thích những gì lệnh này làm để người dùng khác biết?
Phục hồi Monica - -

1
1+ đó để làm gì? Tôi không thể tìm thấy một lời giải thích trong trang man của amixer.
jarno

sử dụng chuyển đổi thay vì bật tiếng rất hữu ích nếu bạn ràng buộc lệnh với khóa phần cứngamixer -D pulse set Master 1+ toggle
Pol Alvarez Vecino

20

nó đơn giản hơn nhiều

amixer -D pulse set Master Playback Switch toggle

đặt cái này làm phím nóng thành "Tắt tiếng \ Tắt tiếng". điều khiển âm lượng có thể được để lại như họ đang có.

Mint 15 Mate - tự mình tìm ra nó, hoạt động tốt với tôi.


Dù đó là gì - hoạt động tốt trên arch linux. Tắt tiếng và tắt âm thanh thành công. Bây giờ tôi đã liên kết lệnh này bằng lệnh tắt tiếng trên máy tính xách tay của mình, vì một lệnh mặc định không bật tiếng tất cả các kênh. CẢM ƠN
Erikas

Điều này làm việc với tôi với Ubuntu 14.04 + i3, câu trả lời được chấp nhận không hoạt động.
Ingo Bürk

1
amixer -D pulse set Master togglesẽ làm. Amixer mong đợi một tên điều khiển bộ trộn đơn giản cho lệnh set hoặc sset và ngay cả khi nó chấp nhận một tên điều khiển bộ trộn hoàn chỉnh, bạn sẽ phải trích dẫn một tên nhiều từ như vậy. Bạn có thể sử dụng công cụ sửa đổi tùy chọn playbacktrong lệnh như thế này: amixer -D pulse set Master playback togglenhưng không cần thiết, nếu Masterkhông có khả năng chụp. Bằng cách sử dụng các công cụ sửa đổi tùy chọn, bạn cũng có thể kiểm soát lệnh nào được áp dụng, nếu hệ thống của bạn có khả năng âm thanh vòm.
jarno

5

Tôi gặp vấn đề tương tự khi chạy máy tính để bàn MATE trên phiên bản Linux Mint Debian (201204).

Hành động "Tăng âm lượng" không thể bật tiếng cho âm lượng. Tôi nhận ra rằng vấn đề là do Pulseaudio, nhưng gói mate-media-gstreamermate-settings-daemon-gstreamernơi được cài đặt theo mặc định. Bằng cách cài đặt mate-media-pulsemate-settings-daemon-pulse(đã gỡ cài đặt mate-media-gstreamermate-settings-daemon-gstreamer) và tadam ... hành động "Tăng âm lượng" đã có thể bật lại âm lượng!

Tôi hy vọng điều này cũng sẽ làm việc cho bạn!


Làm việc cho tôi (trên Debian Jessie) và giải pháp này là vĩnh viễn, trong khi các giải pháp AFAIU liên quan amixer -D pulse set Master xxxlà một lần bắn hoặc cần được ánh xạ thủ công vào một phím tắt. Giải pháp đề xuất ở đây trông giống như ý nghĩa của nó.
Jérôme

2

Đó là một vấn đề với pulseaudio, các lệnh cho alsa hoặc amixer sẽ không gửi đúng cách để bật xung. Khi các lệnh alsa gửi tín hiệu tắt tiếng, đó là lệnh chuyển đổi (gửi cùng một lệnh để tắt tiếng / bật tiếng).

Bây giờ trong pulseaudio họ có mã tắt tiếng và tắt tiếng riêng biệt! Nhiều báo cáo rằng việc không cài đặt pulseaudio sẽ giải quyết vấn đề, nhưng đối với một số người không thực sự là một câu trả lời chấp nhận được (như tôi, bởi vì xung rất hữu ích cho nhiều ứng dụng).

Vì vậy, để giải quyết điều này, chúng ta cần tạo một kịch bản,

1- Tạo một biểu tượng trống mới trong trình soạn thảo văn bản như gedit hoặc mousepad,

2- Dán mã này vào doccument, Soruce của mã: 2

#!/bin/bash
#### Create ~/.pulse/mute if not exists
ls ~/.pulse/mute &> /dev/null
if [[ $? != 0 ]]
then
    echo "false" > ~/.pulse/mute
fi

####Create ~/.pulse/volume if not exists
ls ~/.pulse/volume &> /dev/null
if [[ $? != 0 ]]
then
    echo "65536" > ~/.pulse/volume
fi

CURVOL=`cat ~/.pulse/volume`     #Reads in the current volume
MUTE=`cat ~/.pulse/mute`          #Reads mute state

if [[ $1 == "increase" ]]
then
    CURVOL=$(($CURVOL + 3277)) #3277 is 5% of the total volume, you can change this to suit your needs.
    if [[ $CURVOL -ge 65536 ]]
    then
        CURVOL=65536        
    fi
elif [[ $1 == "decrease" ]]
then
    CURVOL=$(($CURVOL - 3277))
    if [[ $CURVOL -le 0 ]]
    then
        CURVOL=0        
    fi
elif [[ $1 == "mute" ]]
then
    if [[ $MUTE == "false" ]]
    then
        pactl set-sink-mute 0 1
        echo "true" > ~/.pulse/mute
    exit    
    else
        pactl set-sink-mute 0 0
        echo "false" > ~/.pulse/mute    
    exit
    fi
fi

pactl set-sink-volume 0 $CURVOL
echo $CURVOL > ~/.pulse/volume # Write the new volume to disk to be read the next time the script is run.

3- Đặt tên cho tệp là "volume" (không cần phần mở rộng) đặt nó ở đâu đó bạn có thể tìm và sẽ không xóa nó như thư mục nhà của bạn

4- Làm cho tệp có thể thực thi được bằng cách nhấp chuột phải vào tệp, đi đến Thuộc tính, sau đó là tab Quyền và sử dụng hộp kiểm để đánh dấu tệp có thể thực thi được, điều này sẽ cho phép tập lệnh được chạy. mark-file-as-execible-gui

5- Tiếp theo chúng ta cần liên kết các lệnh với bàn phím, các lệnh cho mã là tăng, giảm và tắt tiếng.

Vì vậy, hãy chuyển đến cài đặt bàn phím - how-do-i-change-my-keyboard-Phím-in-xubfox , Trong vùng phím tắt, nhấp vào thêm, sau đó mở, Mở tệp "âm lượng" chúng tôi đã tạo, sau đó thêm lệnh đối với mã sau âm lượng, đọc tăng âm lượng hoặc tắt âm lượng ect. nhưng với vị trí của tệp mã trước nó như "/ home / username / volume shut"

Sau đó gán nó cho bàn phím bằng cách nhấn phím hoặc nếu phím đã được sử dụng,
~ Rất có thể là trường hợp ~ tìm chúng và thay thế lệnh.

Các phím tắt có khả năng được gọi là XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute . Vì chỉ có người câm bị hỏng nên tập trung nỗ lực của bạn vào việc thay đổi điều đó trước.

Lỗi: 1


Tôi vừa mới XF86AudioMuteánh xạ tới lệnh amixer set Master toggle. Các phím tăng và giảm âm lượng được ánh xạ tương tự như amixercác lệnh.
Chan-Ho Suh

@ Chan-HoSuh bạn có gặp vấn đề tương tự không? bạn chỉ có thể gọi lệnh tắt tiếng của tập lệnh này nếu muốn, vì lý do nào đó, xung bị chặn tắt tiếng trên máy của tôi, bộ trộn sẽ gửi một nút chuyển đổi, được hiểu là chỉ tắt tiếng bởi xung hoặc chỉ chặn phím bấm? Tôi đã sử dụng một tập lệnh tương tự hiển thị thanh âm lượng trước :(, nhưng điều này tắt tiếng và tắt tiếng và bây giờ họ có thông báo, vì vậy mọi thứ đều tốt, cách chuyển đổi là cách nó được thiết lập trước đó.
Mateo

Một cải tiến nhỏ đối với kịch bản là cũng buộc bật tắt âm lượng tăng / giảm âm lượng. Tôi cũng đã thêm 'paplay /usr/share/sound/ubfox/stp4/message.ogg' để nhận phản hồi về âm lượng.
dma

Có thể nó đã khác trước đây, nhưng với pulseaudio 4.0, bạn có thể sử dụng các lệnh như pactl set-sink-volume 0 +5%, pactl set-sink-volume 0 -5%pactl set-sink-mute 0 toggleđể tăng âm lượng, giảm âm lượng và chuyển đổi âm lượng, tương ứng.
jarno

@jarno yeah, đây là cách giải quyết một vấn đề cụ thể (lỗi) nên có thể đã được sửa / không liên quan, nhưng nó vẫn là một bản hack nhỏ nếu không có gì khác hoạt động
Mateo


1

Làm việc cho tôi vào ngày 12.10:

    #!/bin/sh
    amixer -c 0 sset Master,0 mute
    sleep 5
    amixer -D pulse set Master 1+ unmute

1

Đối với người dùng KDE và kmix, nếu bạn sử dụng tập lệnh này, bạn vẫn sẽ có phản hồi trực quan hoạt động:

#! /bin/bash

DBUS=qdbus 2> /dev/null

case "$1" in
  volup)
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 0
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/increase_volume com.trolltech.Qt.QAction.trigger
        ;;
  voldn)
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo 0
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/decrease_volume com.trolltech.Qt.QAction.trigger
        ;;
  mute)
        ${DBUS} org.kde.kmix /kmix/KMixWindow/actions/mute com.trolltech.Qt.QAction.trigger
        pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo $(${DBUS} org.kde.kmix /Mixers/0/Master_0 org.kde.KMix.Control.mute | sed 's/false/0/g;s/true/1/g')
        ;;
  *)
    echo "Usage: mixctl <volup|voldn|mute>" >&2
    exit 1
    ;;
esac

exit 0

Sử dụng:

1) Lưu dưới dạng ~ / bin / mixctl
2) Hủy ánh xạ các phím tắt bàn phím kmix mặc định cho Tăng âm lượng / Giảm âm lượng và Tắt tiếng
3) Tạo ba phím tắt tùy chỉnh mới có tên 'Tăng âm lượng', 'Giảm âm lượng' và 'Tắt tiếng'
- > loại phím tắt: lệnh
-> khi các lệnh sử dụng ~ / bin / mixctl volup , ~ / bin / mixctl voldn~ / bin / mixctl tắt tiếng tương ứng


1

Tôi gặp vấn đề tương tự trên nhiều máy Xubfox 12.04 được nâng cấp lên XFCE 4.10. Dưới đây là một cách rất nhanh để giải quyết vấn đề này từ dòng lệnh (hoặc với một bashtập lệnh).

Không giống như các giải pháp trước đây cung cấp các tập lệnh stop-gap, giải pháp này khôi phục hoàn toàn chức năng của nút tắt / bật tiếng.

Chỉ cần đưa ra hai lệnh sau một lần, để giải quyết vấn đề một lần và mãi mãi:

$ xfconf-query --channel xfce4-mixer --property /active-card --set PlaybackInternalAudioAnalogStereoPulseAudioMixer --reset
$ xfconf-query --create --channel xfce4-keyboard-shortcuts --property /commands/custom/XF86AudioMute --type string --set 'amixer -D pulse set Master 1+ toggle'

1

Tôi tìm thấy một giải pháp đơn giản phù hợp với tôi trong diễn đàn này . Cụ thể, bạn cần thêm phần này vào /etc/asound.conf:

pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

Và sau đó đặt phím tắt cho phím tắt tiếng với lệnh là:

amixer set Master toggle

0

Bạn có thể sử dụng cài đặt bàn phím để đặt nút tắt tiếng để thực thi lệnh được tìm thấy TẠI ĐÂY . Mặc dù phương pháp đầu tiên được liệt kê trên liên kết này là vô ích đối với tôi, nhưng phương pháp thứ hai hoạt động rất tốt cho XFCE4 : $ pactl set-sink-mute 0 toggle. Bạn cũng có thể tạo một tập lệnh hoặc trình khởi chạy để thực thi lệnh khi nhấp chuột.

FYI, nếu bạn đang sử dụng một cái gì đó như Cinnamon (và có lẽ là các máy tính để bàn dựa trên gnome khác) thì gợi ý trên của người dùng197761 có vẻ tốt hơn, vì applet âm thanh của quế nhận ra âm lượng bị tắt: amixer -D pulse set Master Playback Switch toggle(nếu bạn thích lệnh sau này, vui lòng nêu lên câu trả lời của anh ấy / cô ấy, không phải của tôi.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.