不知何故设法使 mplayer 静音并且无法弄清楚如何恢复声音

Fah*_*tha 4 mplayer audio

我在用 mplayer 播放视频时随机/实验性地按下按钮。我做的一些事情导致视频静音。然后我退出了视频并尝试了一个不同的视频,但那个也被静音了。我不认为 mplayer 会在调用中保存其设置,除了 中的设置.mplayer,我当然没有在那里保存任何设置,现在我也没有看到任何可能导致这种情况的设置。

vlc 和 xine 都有声音,所以这个问题似乎是 mplayer 特有的。

知道问题是什么吗?重新启动很可能会修复它,如果没有选择,我会这样做,但我想知道问题是什么以供将来参考。

slm*_*slm 10

它看起来在这个配置文件中,至少根据这个 SU Q&A 标题:让 mplayer 以默认音量而不是 25% 开始

 ~/.mplayer/config
Run Code Online (Sandbox Code Playgroud)

要覆盖静音选项,您可以按数字键9& 0。这些将减少/增加音量。我相信m按键也会切换静音。

好的,但是这个选项保存在哪里?

这需要一些挖掘,但该选项似乎已被 Pulse Audio“保存”。这就是我得出这个结论的方式。您可以mplayer像这样以更详细的模式运行:

$ mplayer -msglevel all=6 Whats-the-issue-dear.mp3 2>&1 | tee mpl.log
Run Code Online (Sandbox Code Playgroud)

查看生成的日志文件,我注意到以下几行:

Searching demuxer type for filename /home/saml/Whats-the-issue-dear.mp3 ext: .mp3
Trying demuxer 17 based on filename extension
==> Found audio stream: 0
demux_audio: seeking from 0xC0A1 to start pos 0x0
demux_audio: audio data 0x0 - 0xC0A7··
Audio only file format detected.
Load subtitles in /home/saml/
get_path('sub/') -> '/home/saml/.mplayer/sub/'
Run Code Online (Sandbox Code Playgroud)

特别是这条线让我觉得可能是 Pulse Audio 或其他什么东西代表mplayer.

==> 找到音频流:0

如果您在播放音量一直调低的音频时启动声音设置对话框,您将在该对话框中看到这些图标,例如:

    党卫军#1

注意:要启动声音设置对话框,gnome-control-center sound.

所以这似乎表明我的预感是正确的。如果您使用 Pulse Audio 控制工具pactl,您可以看到更多。以下是所有 Pulse Audio 客户端:

$ pactl list short clients
0   module-systemd-login.c  (null)
4   module-x11-xsmp.c   (null)
5   protocol-native.c   gnome-settings-daemon
9   protocol-native.c   python2.7
11  protocol-native.c   gnome-settings-daemon
13  protocol-native.c   thunderbird
125 protocol-native.c   gnome-settings-daemon
243 module-systemd-login.c  (null)
311 protocol-native.c   chrome
331 protocol-native.c   gnome-shell
332 protocol-native.c   gnome-shell
335 protocol-native.c   VirtualBox
369 protocol-native.c   mplayer
375 protocol-native.c   pactl
Run Code Online (Sandbox Code Playgroud)

369号mplayer,是我们的人。我们可以像这样询问输入:

$ pactl list sink-inputs
...
Sink Input #6203
    Driver: protocol-native.c
    Owner Module: 9
    Client: 369
    Sink: 0
    Sample Specification: s16le 2ch 44100Hz
    Channel Map: front-left,front-right
    Format: pcm, format.sample_format = "\"s16le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
    Corked: yes
    Mute: no
    Volume: 0:   0% 1:   0%
            0: -inf dB 1: -inf dB
            balance 0.00
    Buffer Latency: 276916 usec
    Sink Latency: 0 usec
    Resample method: n/a
    Properties:
        media.name = "audio stream"
        application.name = "MPlayer"
        native-protocol.peer = "UNIX socket client"
        native-protocol.version = "27"
        application.process.id = "23956"
        application.process.user = "saml"
        application.process.host = "greeneggs.bubba.net"
        application.process.binary = "mplayer"
        application.language = "C"
        window.x11.display = ":0"
        application.process.machine_id = "0ee868f8b7da40f48013a281826b1b84"
        application.process.session_id = "1"
        module-stream-restore.id = "sink-input-by-application-name:MPlayer"
Run Code Online (Sandbox Code Playgroud)

注意到这些线条了吗?

Volume: 0:   0% 1:   0%
        0: -inf dB 1: -inf dB
        balance 0.00
Run Code Online (Sandbox Code Playgroud)

音量在此处设置为 0。这就是导致mplayer的音量从运行到运行一直被关闭的原因。

替代声音设置 GUI

您还可以使用其他 GUI 来管理 Pulse Audio,例如pavucontrol. 如果尚未安装,它应该在您的发行版的标准存储库中。

$ pavucontrol
Run Code Online (Sandbox Code Playgroud)

         党卫军#1