ALSA 在播放过程中最初跳过

ALSA 在播放过程中最初跳过

我有一个 ALSA 配置,目前提供以下内容:

  • 采用默认音频并将其设置为单声道
  • 通过同样相等
  • 将音频扩展至 4 个通道,均为单声道
  • 在 2 个立体声声卡之间分割 4 个通道

为了让 alsaequal 能够很好地使用“type: multi”配置,我必须按照某人的建议传递一个类型为“asym”的配置,否则我会收到错误。

配置有点有效,但我发现很多时候,在正常播放之前,音频在音乐曲目的一开始就不稳定。此配置中发生了很多事情,但我并不是 100% 正确。我做错了什么吗?

pcm.office-front {
    type hw
    card 0
    device 0
}
ctl.office-front {
    type hw
    card 0
}

pcm.office-back {
    type hw
    card 1
    device 0
}
ctl.office-back {
    type hw
    card 1
}

pcm.multi {
    type multi
    slaves.a.pcm "office-front"
    slaves.a.channels 2
    slaves.b.pcm "office-back"
    slaves.b.channels 2

    # office-front
    bindings.0.slave a
    bindings.0.channel 0    # bind alsa channel 0 to left
    bindings.1.slave a
    bindings.1.channel 1    # bind alsa channel 1 to left

    # office-back
    bindings.2.slave b
    bindings.2.channel 0    # bind alsa channel 2 to left
    bindings.3.slave b
    bindings.3.channel 1    # bind alsa channel 3 to left
}

pcm.duplex {
  type asym
  playback.pcm 20to40
  capture.pcm "hw:0,0"

}

pcm.20to40 {
  type route
  slave.channels 4;
  slave.pcm multi;
  ttable.0.0 1
  ttable.0.1 1
  ttable.0.2 1
  ttable.0.3 1
}

ctl.equal {
  type equal;
  controls "/home/pi/.alsaequal.bin"
}

pcm.plugequal {
  type equal;
  slave.pcm "plug:duplex";
  controls "/home/pi/.alsaequal.bin"
}

pcm.equal {
  type plug;
  slave.pcm plugequal;
}

pcm.!default {
  type route;
  slave.channels 2
  slave.pcm equal;
  ttable.1.0 1
  ttable.0.0 0.5
  ttable.0.1 0.5
}

相关内容