Ubuntu 命令行配置默認(rèn)聲卡、錄音播放與音量調(diào)節(jié)

一渔隶、alsa設(shè)置默認(rèn)聲卡

alsa設(shè)置默認(rèn)聲卡

理解和使用Alsa的配置文件

alsa的配置文件是alsa.conf位于/usr/share/alsa目錄下,通常還有/usr/share/alsa/card和/usr/share/alsa/pcm兩個(gè)子目錄用來設(shè)置card相關(guān)的參數(shù),別名以及一些PCM默認(rèn)設(shè)置垦梆。

1.安裝alsa相關(guān)應(yīng)用

sudo apt-get install alsa-base alsa-utils alsa-oss alsa-tools

2.查看系統(tǒng)中的聲卡

免驅(qū)藍(lán)牙適配器

# 查看聲卡
cat /proc/asound/cards
 0 [tegrahda       ]: tegra-hda - tegra-hda
                      tegra-hda at 0x70038000 irq 82
 1 [tegrasndt210ref]: tegra-snd-t210r - tegra-snd-t210ref-mobile-rt565x
                      tegra-snd-t210ref-mobile-rt565x
 2 [Adaptor        ]: USB-Audio - CSR Audio Adaptor
                      CSR Audio Adaptor at usb-70090000.xusb-2.3, full speed
                      
# 查看播放設(shè)備
$ sudo aplay -l                                                                                                                       
**** List of PLAYBACK Hardware Devices ****
card 0: rkhdmidpsound [rk-hdmi-dp-sound], device 0: HDMI-DP i2s-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tipcm5102codec [ti,pcm5102-codec], device 0: ff880000.i2s-pcm5102a-hifi pcm5102a-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
                    
# 查看錄音設(shè)備
$ sudo arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC3234 Analog [ALC3234 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
  • 每一個(gè)聲卡有一個(gè)card number和一個(gè)device number
$ sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
Home directory not accessible: Permission denied
card 0: tegrahda [tegra-hda], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 0: ADMAIF1 CIF ADMAIF1-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 1: ADMAIF2 CIF ADMAIF2-1 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 2: ADMAIF3 CIF ADMAIF3-2 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 3: ADMAIF4 CIF ADMAIF4-3 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 4: ADMAIF5 CIF ADMAIF5-4 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 5: ADMAIF6 CIF ADMAIF6-5 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 6: ADMAIF7 CIF ADMAIF7-6 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 7: ADMAIF8 CIF ADMAIF8-7 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 8: ADMAIF9 CIF ADMAIF9-8 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: tegrasndt210ref [tegra-snd-t210ref-mobile-rt565x], device 9: ADMAIF10 CIF ADMAIF10-9 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Adaptor [CSR Audio Adaptor], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

  • alsa設(shè)置了一個(gè)defaults設(shè)備,音頻播放軟件默認(rèn)使用defaults設(shè)備輸出聲音仅孩。defaults設(shè)備定義在alsa.conf中托猩。defaults會(huì)默認(rèn)匹配card number和device number比較小的聲卡。如果要修改默認(rèn)聲卡辽慕,則修改/etc/asound.conf或~/.asoundrc文件京腥。
...
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.compat 0
defaults.pcm.minperiodtime 5000         # in us
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format "unchanged"
defaults.pcm.dmix.card defaults.pcm.card
defaults.pcm.dmix.device defaults.pcm.device
defaults.pcm.dsnoop.card defaults.pcm.card
defaults.pcm.dsnoop.device defaults.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround21.card defaults.pcm.card
defaults.pcm.surround21.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card

...

3.使用 ~/.asoundrc配置默認(rèn)聲卡

用戶配置

https://alsa.opensrc.org/Asoundrc

在home目錄添加 .asoundrc文件:

vi .asoundrc # 【測(cè)試可用】
defaults.ctl.card 2 
defaults.pcm.card 2
defaults.pcm.device 0

4.使用/etc/asound.conf配置默認(rèn)聲卡

全局配置

pcm.!default {
        type plug
        slave {
                pcm "hw:tegrasndt210ref,0"
                channels 2
                rate 48000
        }
        hint.description "Tegra APE Soundcard (tegrasndt210ref,0)"
}

ctl.!default {
        type hw
        card tegrasndt210ref
}

pcm.music {
        type plug
        slave {
                pcm "hw:tegrasndt210ref,0"
                channels 2
                rate 48000
        }
}

pcm.demixer {
        type plug
        slave {
                pcm "dmix:tegrasndt210ref"
                channels 2
                rate 48000
        }
}

pcm.aux {
        type hw
        card "Tegra"
        device 3
}

pcm.voice {
        type plug
        slave {
                pcm "hw:tegrasndt210ref,2"
                channels 1
                rate 8000
        }
}

pcm.aux_plug {
        type plug
        slave.pcm "aux"
}

pcm.music_and_voice {
        type asym

        playback.pcm {
                type plug

                slave.pcm {
                        type multi

                        slaves.a.pcm music
                        slaves.b.pcm voice
                        slaves.a.channels 2
                        slaves.b.channels 1

                        bindings.0.slave a
                        bindings.0.channel 0
                        bindings.1.slave a
                        bindings.1.channel 1
                        bindings.2.slave b
                        bindings.2.channel 0
                }
                route_policy duplicate
        }
        capture.pcm "voice"
}

在文件最后添加一下內(nèi)容

$ sudo vim /etc/asound.conf   
defaults.pcm.card 2  
defaults.ctl.card 2  

5.命令行指定錄音和播放設(shè)備

# 選擇默認(rèn)設(shè)備錄音
arecord -d 3 demo.wav
# 選擇特定設(shè)備錄音 【測(cè)試可用】
arecord -d 3 -D "plug:SLAVE='hw:2,0'" sample.wav  
    # 注意:-D 指定設(shè)備  參考aplay -l
    # -d 指定延時(shí),單位秒
arecord -D hw:2,0 -c 2 -f S16_LE -d 5 -v test.wav

# 選擇默認(rèn)設(shè)備播放 【測(cè)試可用】 受系統(tǒng)音量調(diào)節(jié)
aplay demo.wav
# 選擇特定設(shè)備播放 【測(cè)試可用】 不受系統(tǒng)音量調(diào)節(jié)
aplay -D "plug:SLAVE='hw:2,0'" sample.wav

6.使用pacmd命令配置默認(rèn)聲卡

# 查看系統(tǒng)聲卡
sudo pacmd list-sinks | grep name:
        name: <alsa_output.platform-70030000.hda.hdmi-stereo>
        name: <alsa_output.usb-0a12_CSR_Audio_Adaptor-00.analog-stereo>
        name: <alsa_output.platform-sound.analog-stereo>

# 設(shè)置默認(rèn)輸出聲卡 【測(cè)試不可用】
sudo pacmd set-default-sink alsa_output.usb-0a12_CSR_Audio_Adaptor-00.analog-stereo

sudo pacmd list-sources | grep name:

# 設(shè)置默認(rèn)輸入麥克風(fēng)
pacmd set-default-source "SOURCENAME"
  • 需要有PulseAudio守護(hù)進(jìn)程在后臺(tái)運(yùn)行

二、調(diào)節(jié)系統(tǒng)音量

1.使用ALSA的amixer調(diào)節(jié)音量

1)調(diào)節(jié)常用命令

ubuntu操音量調(diào)整命令amixer

$ sudo amixer -h
Usage: amixer <options> [command]

Available options:
  -h,--help       this help
  -c,--card N     select the card
  -D,--device N   select the device, default 'default'
  -d,--debug      debug mode
  -n,--nocheck    do not perform range checking
  -v,--version    print version of this program
  -q,--quiet      be quiet
  -i,--inactive   show also inactive controls
  -a,--abstract L select abstraction level (none or basic)
  -s,--stdin      Read and execute commands from stdin sequentially
  -R,--raw-volume Use the raw value (default)
  -M,--mapped-volume Use the mapped volume

Available commands:
  scontrols       show all mixer simple controls
  scontents   show contents of all mixer simple controls (default command)
  sset sID P      set contents for one mixer simple control
  sget sID        get contents for one mixer simple control
  controls        show all controls for given card
  contents        show contents of all controls for given card
  cset cID P      set control contents for one control
  cget cID        get control contents for one control

# 解除靜音
sudo amixer set 'Master' unmute

sudo amixer -c 0 sset 'Master',0 100%,80% unmute
    # -c 選擇聲卡溅蛉, 不設(shè)置則為默認(rèn)
    #  'Master',0:Simple mixer control
    # 100%,80% : 左聲道公浪、右聲道音量

2)使用softvol控制主音量

Softvol

如何使用softvol控制主音量

如果聲卡無法控制硬件的音量(如PCM5102),或者驅(qū)動(dòng)程序不支持聲卡的此功能船侧,則可以定義一個(gè)新的虛擬pcm設(shè)備欠气,該設(shè)備將控制軟件方面的音量。

  • 設(shè)置全局音頻配置文件

    $ sudo vim /etc/asound.conf
        pcm.softdevice {
            type            softvol
            slave.pcm       "default"
            control.name    "Softmaster"
            control.card    1
        }
        # 設(shè)置默認(rèn)聲卡
        defaults.pcm.card 1
        defaults.ctl.card 1 
    

    這將創(chuàng)建一個(gè)名為softdevice的新PCM設(shè)備勺爱,其音量由名為Softmaster的新音量控件控制 晃琳。音量改變的音頻流將被傳送到 default設(shè)備。由于該插件沒有任何變化琐鲁,因此新設(shè)備的音量卫旱, 采樣格式采樣率通道數(shù)與從設(shè)備的值相同围段。

  • 首次使用新定義的設(shè)備

    只有使用一次新PCM設(shè)備后顾翼,才會(huì)出現(xiàn)Softmaster控件,同時(shí)也可以通過alsamixer 調(diào)節(jié)音量

    $ sudo speaker-test  -D softdevice
    
    $ amixer 
    Simple mixer control 'Softmaster',0
      Capabilities: volume
      Playback channels: Front Left - Front Right
      Capture channels: Front Left - Front Right
      Limits: 0 - 255
      Front Left: 156 [61%]
      Front Right: 156 [61%]
    
  • 保存配置

    $ alsactl store -f /var/lib/alsa/asound.state  
    
    $ cat /var/lib/alsa/asound.state
    ...
    state.tipcm5102codec {
      control.1 {
          iface MIXER
          name Softmaster
          value.0 156
          value.1 156
          comment {
              access 'read write user'
              type INTEGER
              count 2
              range '0 - 255'
              tlv '00000001000000080000000000000014'
              dbmin 0
              dbmax 5100
              dbvalue.0 3120
              dbvalue.1 3120
          }
      }
    }
    ...
    
  • 修改音量與播放

    sudo amixer -c 1 sset 'Softmaster',0 80%,80% unmute
    
    # 播放音頻
    sudo aplay -d 2 -D softdevice audio_test.wav
    

2.使用pulseaudio的pactl調(diào)節(jié)音量

Ubuntu Linux:從命令行和鍵盤快捷方式增加減少音量

使用是pulseaudio的自帶命令pactl

sudo apt-get install pulseaudio

# 查看音頻設(shè)備的名稱或索引號(hào)
pactl list short sinks
0       alsa_output.platform-70030000.hda.hdmi-stereo   module-alsa-card.c      s16le 2ch 44100Hz       SUSPENDED
1       alsa_output.usb-0a12_CSR_Audio_Adaptor-00.analog-stereo  module-alsa-card.c      s16le 2ch 48000Hz       RUNNING
2       alsa_output.platform-sound.analog-stereo        module-alsa-card.c      s16le 2ch 44100Hz       SUSPENDED

# 將音量提高10% 【測(cè)試可用】
pactl -- set-sink-volume 1 +10%

# 將音量降低10%
pactl -- set-sink-volume 1 -10%

# 將音量設(shè)置為200%
pactl -- set-sink-volume 1 100%


# 查看音頻輸入輸出設(shè)備
pactl list short sources
0       alsa_output.platform-70030000.hda.hdmi-stereo.monitor   module-alsa-card.c      s16le 2ch 44100Hz       SUSPENDED
1       alsa_output.usb-0a12_CSR_Audio_Adaptor-00.analog-stereo.monitor module-alsa-card.c      s16le 2ch 48000Hz       SUSPENDED
2       alsa_input.usb-0a12_CSR_Audio_Adaptor-00.analog-mono    module-alsa-card.c      s16le 1ch 48000Hz       SUSPENDED
3       alsa_output.platform-sound.analog-stereo.monitor        module-alsa-card.c      s16le 2ch 44100Hz       SUSPENDED
4       alsa_input.platform-sound.analog-stereo module-alsa-card.c      s16le 2ch 44100Hz       SUSPENDED

# 設(shè)置默認(rèn)音頻輸出設(shè)備 【測(cè)試不可用】
pactl set-default-sink alsa_output.usb-0a12_CSR_Audio_Adaptor-00.analog-stereo.monitor

# 設(shè)置默認(rèn)音頻輸入設(shè)備 【測(cè)試不可用】
pactl set-default-source  alsa_input.usb-0a12_CSR_Audio_Adaptor-00.analog-mono

三奈泪、問題調(diào)試

1.系統(tǒng)不播放音樂适贸,連接過了10分鐘灸芳,藍(lán)牙自帶斷開

  • 原因:藍(lán)牙音箱一段時(shí)間沒有聲音會(huì)自動(dòng)休眠。
  • 解決辦法:需要定期給藍(lán)牙音箱播放一段空白語音拜姿,以保持藍(lán)牙連接正常烙样。

2.root用戶無法調(diào)節(jié)系統(tǒng)音量

  • pulseaudio來管理音頻設(shè)備的,而pulseaudio不允許在root用戶下運(yùn)行蕊肥,這樣會(huì)導(dǎo)致安全問題谒获。

    root@michael-desktop:/# pulseaudio 
    W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).
    E: [pulseaudio] pid.c: Daemon already running.
    E: [pulseaudio] main.c: pa_pid_file_create() failed.
    
  • Ubuntu 11.04 root用戶沒有聲音的問題

  • 解決方法:跨用戶調(diào)用命令 【可用】

    # 錄音
    su - nano -c "arecord -d 3 -D \"plug:SLAVE='hw:2,0'\" sample.wav"
    
    # 播放聲音
    su - nano -c "aplay sample.wav"
    
    # 調(diào)節(jié)音量
    su - nano -c "pactl -- set-sink-volume 1 100%"
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市壁却,隨后出現(xiàn)的幾起案子批狱,更是在濱河造成了極大的恐慌,老刑警劉巖展东,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赔硫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡盐肃,警方通過查閱死者的電腦和手機(jī)爪膊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恼蓬,“玉大人惊完,你說我怎么就攤上這事〈τ玻” “怎么了小槐?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)荷辕。 經(jīng)常有香客問我凿跳,道長(zhǎng),這世上最難降的妖魔是什么疮方? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任控嗜,我火速辦了婚禮,結(jié)果婚禮上骡显,老公的妹妹穿的比我還像新娘疆栏。我一直安慰自己,他們只是感情好惫谤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布壁顶。 她就那樣靜靜地躺著,像睡著了一般溜歪。 火紅的嫁衣襯著肌膚如雪若专。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天蝴猪,我揣著相機(jī)與錄音调衰,去河邊找鬼膊爪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛嚎莉,可吹牛的內(nèi)容都是我干的米酬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼趋箩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼淮逻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起阁簸,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哼丈,沒想到半個(gè)月后启妹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡醉旦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年饶米,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片车胡。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡檬输,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匈棘,到底是詐尸還是另有隱情丧慈,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布主卫,位于F島的核電站逃默,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏簇搅。R本人自食惡果不足惜完域,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瘩将。 院中可真熱鬧吟税,春花似錦、人聲如沸姿现。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽建钥。三九已至藤韵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熊经,已是汗流浹背泽艘。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工欲险, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匹涮。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓天试,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親然低。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喜每,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容