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 / 问题 / 689998
Accepted
Scorpion
Scorpion
Asked: 2022-02-10 11:02:02 +0800 CST2022-02-10 11:02:02 +0800 CST 2022-02-10 11:02:02 +0800 CST

我可以只使用 ALSA 来选择声卡吗?

  • 772

如果我从alsamixerNvidia 声卡中选择它根本不起作用,并且我无法提高六个项目( 、 等)的S/PDIF音量S/PDIF 1: 在此处输入图像描述

一些信息:

cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf3310000 irq 31
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf3080000 irq 17
Kernel: 5.10.0-11-amd64 
Distro: Debian GNU/Linux 11 (bullseye) 

要使用监听音箱,我可以只使用 ALSA 吗?

如果我开始pulseaudio,我可以使用它们。

# pactl list short sources
1   alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
2   alsa_input.pci-0000_00_1b.0.analog-stereo   module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
5   alsa_output.pci-0000_01_00.1.hdmi-stereo-extra2.monitor module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
# pactl list short sinks
1   alsa_output.pci-0000_00_1b.0.analog-stereo  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
4   alsa_output.pci-0000_01_00.1.hdmi-stereo-extra2 module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED

我pasystray可以简单地选择水槽GP106 High Definition Audio Controller ...,但有时它不起作用。

PA运行时如果我选择的HDA nvidia声卡alsamixer和以前一样。

这是/etc/asound.conf我做的:

defaults.pcm.card 1
defaults.ctl.card 1

那是为了选择默认卡。

我可以更改正在使用的那个,alsavolume-icon但是在它显示静音图标之后,我无法提高使用时的音量alsamixer。

我可以让它工作吗?然后asound.conf我将其设为默认卡。

debian audio
  • 3 3 个回答
  • 1164 Views

3 个回答

  • Voted
  1. telcoM
    2022-02-10T12:45:57+08:002022-02-10T12:45:57+08:00

    在这里,ALSA 只提供实际硬件可以做的事情。对于 NVidia HDA 声音芯片,它只为每个 S/PDIF 数字通道(通常与 HDMI 或 DisplayPort 数字显示连接相关联)提供开/关开关。

    您应该能够alsamixer通过按键来打开/关闭每个通道M,并使用左/右箭头键在通道之间移动。仅当声音芯片具有实际的混音器功能时,才会显示音量滑块(可使用向上/向下箭头键调节)。仅以数字格式传递声音的显示卡和其他设备可能根本没有模拟式混音器功能,因为它们通常只是用于标准格式数字音频数据的“直管”。

    如果您的意思是在使用 PulseAudio 时甚至看不到屏幕截图中的显示,请尝试显式设置声卡号,即alsamixer -c 0和alsamixer -c 1。

    使用 Debian 当前的默认配置,如果您使用 PulseAudio,alsamixer不带选项运行只会显示 PulseAudio 的主音量控制,而不会显示其他任何内容。但是,如果您指定声卡编号,您仍然可以访问 ALSA 驱动程序提供的设置。

    PulseAudio 引入了软件混音功能,允许您通过使用 CPU 修改数字声音数据流以使其更柔和或更大声来调整音量,或者将来自多个源的声音混合到单个输出中,即使流将要技术上只接受线路级声音数据流的输出设备,如 HDMI 音频通道。

    PulseAudio 还会在需要时进行采样率转换:如果您的监视器仅支持单一采样率,则 ALSA 驱动程序层将拒绝播放任何使用不同采样率的声音数据的尝试。

    从技术上讲,ALSA也可以进行软件混音和采样率转换,只是 ALSA 调整软件混音的方式通常涉及编辑.asoundrc文件,而 PulseAudio 允许轻松动态重新配置,即使在播放声源时也是如此。结果,alsa-lib用于此目的的使用已失宠,而 PulseAudio 基本上已取而代之。

    ALSA过去分为三个主要部分:

    • alsa-driver:实际的声卡驱动程序(现在集成到 Linux 内核中)
    • alsa-lib:用于使用驱动程序的通用库,可使用.asoundrc.
    • alsa-tools:用户空间工具,如、alsamixer等。aplayarecord

    HDMI 显示器和许多 USB 连接的声音设备只接受一组离散的采样频率,因此在需要时自动转换采样率的能力变得越来越重要。这似乎是另一个alsa-lib失宠的原因。

    要使用 ALSA 驱动程序接口选择声卡,您需要通过卡和设备编号(请参阅aplay -l可用选项)或输出设备名称(aplay -L分别参阅)指定设备。

    不幸的是,将声卡和设备编号或 ALSA 设备名称输入到使用 ALSA 驱动程序接口的应用程序的确切方法因应用程序而异:一些应用程序仅接受名称,其他应用程序只能使用数字。命令行选项或配置项名称也因应用程序而异:对于您期望它如何完成没有单一的公认约定。

    • 2
  2. dirkt
    2022-02-10T14:08:55+08:002022-02-10T14:08:55+08:00

    要使用监听音箱,我可以只使用 ALSA 吗?

    大多数直接使用 ALSA 的应用程序都可以选择输出设备(通过命令行选项或通过配置对话框)。

    您还可以在系统范围 ( ) 或每个用户 ( ) 中创建asoundrc配置文件,您可以在其中设置默认设备。 /etc/asound.conf$HOME/.asoundrc

    如果我从 alsamixer 中选择 nvidia 声卡,它根本不起作用

    选择其中的声卡alsamixer仅用于获取此声卡的混音器设置。它不会使声卡成为默认设置,也不会影响其他任何东西。

    如果您安装了 Pulseaudio,通常您还有一个将pulse伪设备指定为默认设备的 asoundrc 文件,因此这可能与您想要单独使用 ALSA 执行的操作相冲突。


    调试 asoundrc 问题的帮助:My ~/.asoundrchas

     pcm.!default "plughw:2,0"
    

    为卡 2选择自动plughw,由 确定aplay -L。您可能需要卡 1。从那一行开始,测试它是否可以在aplay没有-D. 如果有效,请添加该ctl部分。


    如果你的编解码器(声音硬件芯片)没有音量控制,那么它就没有音量控制,所以你不能改变音量。

    你可以在前面放一个“软件音量控制”:

    pcm.!default "mynvidia"
    ctl.!default "mynvidia"
    
    pcm.mynvidia {
      type softvol
      slave {
        pcm "plughw:2,0"
      }
      control {
        name "Master"
        card "NVidia"
      }
    }
    

    也许您也可以将plughw与符号卡名称一起使用,但我自己没有尝试过。

    • 2
  3. Best Answer
    Scorpion
    2022-02-28T09:10:21+08:002022-02-28T09:10:21+08:00

    正如 dirkt 所说,您需要调试您的.asoundrc.
    用于aplay -L列出所有定义的 PCM。

    使用他们的配置时,只允许流式传输。
    在我的情况下pcm.!default "plughw:1,8",有正确的价值观。

    虽然此配置允许更多流:

    pcm.nvidiamix {
        type dmix
        ipc_key 1024
        slave {
            pcm "hw:NVidia,3"
            channels 2
            #rate 48000
            period_time 0
            period_size 1024
            buffer_time 0
            buffer_size 8192
        }
        bindings.0 0
        bindings.1 1
    }
    pcm.!default {
        type plug
        slave.pcm "nvidiamix"
        hint {
            show on
            description "Default Card NVidia"
        }
    }
    ctl.!default {
        type hw
        card "NVidia"
    }
    

    你会看到一个新Master的,alsamixer但它是没有意义的,你只能静音S/PDIF发出声音的那个。你可以设置音量级别,而不是 Nvidia
    。 使用该软件包,您可以更改显示器设置。Intel HDA
    ddcutil

    某些应用程序可能无法工作apulse包可能会解决此问题。
    或者你可以试试pipewire https://wiki.debian.org/PipeWire。

    • 0

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

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

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

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

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

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

    • 4 个回答
  • Marko Smith

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

    • 5 个回答
  • Marko Smith

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

    • 3 个回答
  • 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
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +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

热门标签

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