AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 489302
Accepted
Andrea Borgia
Andrea Borgia
Asked: 2018-12-17 05:52:50 +0800 CST2018-12-17 05:52:50 +0800 CST 2018-12-17 05:52:50 +0800 CST

HDMI 显示器待机后重新设置 xfce4-pulseaudio-plugin 默认值

  • 772

背景:Debian/在配备 Ryzen 2200G、HDMI 显示器的 ASRock B450 上进行测试。

我可以通过 /etc/pulse/default.pa 或使用以下命令手动设置默认音频接收器:pacmd set-default-sink alsa_output.pci-0000_38_00.1.hdmi-stereo-extra1

但是,一旦显示器进入待机模式,默认设置将重置为内部 HDaudio 卡,并且音量小程序不再跟踪 HDMI 音量,而是为耳机和后面板插孔供电的内部声卡。我认为这是因为 HDMI“卡”被拔掉了,但我不确定。

我也尝试了其他问题中的建议,但没有奏效。大多数问题似乎是关于设置 pulseaudio 默认值,但这不起作用:音频仍然正确路由到 HDMI 监视器,它只是跟踪错误音量的小程序。如果我使用上面的命令重置默认卡,它会返回显示正确的音量,直到下一次待机。

我该如何解决?基本上,我需要在 hdmi sink 再次可用后立即运行“pacmd set-default-sink”。

关于水槽的新信息

  1. 待机前:卡0为hdmi,卡1为内部;卡 0 是默认可用的,卡 1 也可用但不是默认的(链接到详细信息:https ://paste.scratchbook.ch/view/83c0e9a5 )
  2. 待机时:hdmi不可用,内卡标记为默认(详情链接:https ://paste.scratchbook.ch/view/9e9ae422 )
  3. 待机后:hdmi再次可用,内卡仍为默认(详情链接:https ://paste.scratchbook.ch/view/9be5801a )

中断待机后,我启动了一个新的播放器,我可以确认音乐来自 hdmi 显示器,但小程序显示一个划掉的扬声器。

debian xfce
  • 2 2 个回答
  • 734 Views

2 个回答

  • Voted
  1. Best Answer
    dirkt
    2018-12-24T07:16:54+08:002018-12-24T07:16:54+08:00

    好的,会发生以下情况:

    接收器的每个端口都有一个“可用”状态,将 HDMI 监视器置于待机状态会使端口状态变为“不可用”。

    默认接收器也可以被认为是后备接收器:Pulseaudio 使用的接收器无法使用流缓存(它记住哪个流使用哪个接收器)将有效接收器分配给应用程序。所以它不能保持默认接收器指向不能用于此目的的东西,这就是为什么默认接收器切换到任何其他可用接收器的原因。

    当监视器从待机状态恢复时,默认接收器会保留,并且不会切换回来(没有“首选”默认接收器)。

    处理这个问题的最简单方法是编写一个简单的 Pulseaudio 应用程序来订阅配置更改(参见此处的示例),并且每当您的 HDMI 接收器再次可用时,将其设置为默认值。

    另一种选择可能是使用pactl subscribe,解析输出,并在 shell 脚本中执行相同的操作。

    • 2
  2. Torxgewinde
    2020-03-30T06:47:40+08:002020-03-30T06:47:40+08:00

    这是我如何解析“pactl subscribe”输出的示例。

    在此示例中,当插入或拔出耳机时,操作的触发器是字符串“Event change on card #0”。

    #!/bin/bash
    
    function MySubscription() {
        if [ "$1" != "Event change on card #0" ]; then
            return 0
        fi
    
        #detect plug state
        pactl list | grep "analog-output-headphones" | grep "not available" > /dev/null
        STATE=$?
    
        if [ $STATE -eq 0 ]; then
            echo "headphones unplugged"
            #YOUR COMMAND HERE
        else
            echo "headphones plugged"
            #YOUR COMMAND HERE
        fi
    
        return 0
    }
    
    export -f MySubscription
    pactl subscribe | xargs -I {} bash -c 'MySubscription "$@"' _ {}
    
    • 1

相关问题

  • Firefox 将输入栏显示为黑色,方程式显示为浅灰色

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve