Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux ALSA dmix插件和采样率问题_Linux_Mp3_Alsa - Fatal编程技术网

Linux ALSA dmix插件和采样率问题

Linux ALSA dmix插件和采样率问题,linux,mp3,alsa,Linux,Mp3,Alsa,我正在一个嵌入式项目中使用ALSA dmix插件,并通过使用mpg321 ALSA播放mp3文件来混合这些文件。在asound.conf中,我将dmix采样率设置为44100Hz 如果我尝试以44100Hz以外的速率(或平均分成44100Hz的速率)播放任何采样的mp3文件,则音频质量会降低,甚至更糟的是,文件的开头会被忽略。这有一个随机的方面:如果我创建一个300毫秒长的音频文件,并通过mpg321 alsa播放,那么有时播放正常,有时根本没有声音 这是dmix的已知问题吗?除了对mp3文件重

我正在一个嵌入式项目中使用ALSA dmix插件,并通过使用mpg321 ALSA播放mp3文件来混合这些文件。在asound.conf中,我将dmix采样率设置为44100Hz

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

这是dmix的已知问题吗?除了对mp3文件重新采样外,还有其他解决办法吗

请参阅

请注意,dmix插件本身只支持一种配置。也就是说,它只支持固定速率(默认48000)、格式(
S16
)、频道(2)和时段时间(125000)。对于使用其他配置,必须在从属PCM定义中明确设置该值。速度、格式和频道可以由一个额外的插件来覆盖,但无论如何,只有一个基本配置

例如(根据需要进行修改)


谢谢你。我有一个与上面显示的配置非常相似的配置。现在我想知道是否需要查看缓冲,尽管奇怪的是音频截断是在开始而不是结束时。我已经查阅了ALSA的文档,但仍然认为我遗漏了一些东西。
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
    }
}