3

我经常使用耳机,来选择是使用耳机还是普通声卡我使用环境变量,这要归功于 ~/.asound.rc 中的这段代码:

@args.CARD {
  type string
  default {
    @func getenv
    vars {
      0 ALSA_CARD
    }
    default {
      @func refer
      name 'defaults.pcm.card'
    }
  }
}

不幸的是,新耳机 (hw:Set) 有反转通道,所以我创建了一个 pcm 来修复,将这些行添加到 ~/.asoundrc:

pcm.swapped {
    type  route
    slave {
        pcm "hw:Set"
    }
    ttable.0.1   1
    ttable.1.0   1
}


pcm.HeadsetSwapped {
  type plug
  slave {
    pcm "pcm.swapped"
  }
}

pcm 有效,但我如何决定通过环境变量使用它?目前 env 变量只接受卡名。它可能与 --name 'defaults.pcm.card' -- 行有关,但我无法修复它。

我知道我可以将 pcm.HeadsetSwapped 更改为 pcm.!default,但我想避免每次要启动程序时都编辑文件...

4

1 回答 1

5

使用类似这样的东西,并将环境变量设置MY_DEVICEhwor swapped

pcm.!default {
    type plug
    slave.pcm {
        @func getenv
        vars [ MY_DEVICE ]
        default "hw"
    }
}
pcm.swapped {
    type route
    slave.pcm "hw:Set"
    ttable.0.1 1
    ttable.1.0 1
}
于 2013-06-14T11:31:19.687 回答