2

我在嵌入式项目上使用 ALSA dmix 插件,并通过使用 mpg321-alsa 播放它们来混合 mp3 文件。在我的 asound.conf 中,我将 dmix 采样率设置为 44100Hz。

如果我尝试播放以 44100Hz 以外的速率(或均匀划分为 44100Hz 的速率)采样的任何 mp3 文件,则音频质量会下降,或者更糟的是文件的开头被省略。这有一个随机方面:如果我创建一个 300 毫秒长的音频文件并通过 mpg321-alsa 播放它,那么有时它播放正常,有时根本没有声音。

这是 dmix 的已知问题吗?除了重新采样 mp3 文件之外,是否有任何解决方法?

4

1 回答 1

3

请参阅ALSA 插件文档

请注意,dmix 插件本身仅支持单一配置。也就是说,它只支持固定速率(默认 48000)、格式(S16)、通道(2)和 period_time(125000)。要使用其他配置,您必须在从属 PCM 定义中明确设置该值。速率、格式和频道可以通过附加的插件插件覆盖,但无论如何只有一个基本配置。

作为一个例子(修改以满足您的需要),

pcm.dsp0 {
    type plug
    slave.pcm "asym0"
    slave.rate 44100
}

pcm.asym0 {
    type asym
    playback.pcm "dmix0"
    capture.pcm "dsnoop0"
}

pcm.dmix0 {
    type dmix
    ipc_key 1024
    ipc_perm 0666
    slave {
        pcm {
            type hw
            card 0
            device 0
        }
        period_time 0
        period_size 1024
        buffer_size 65536
        format "S16_LE"
        periods 128
        rate 44100
    }
}

pcm.dsnoop0 {
    type dsnoop
    ipc_key 1025
    ipc_perm 0666
    slave.pcm {
        type hw
        card 0
        device 0
    }
}
于 2009-11-11T18:41:01.053 回答