C++ 使用alsa和x27进行音频混音;在c++;
我尝试使用alsa同时播放两个wav文件。请注意,wav文件具有不同的采样率。这是可能的,音频流被混合并发送到音频芯片。(我正在嵌入式linux设备上开发。)但其中一个流的播放速度比正常情况快了几倍。所以我想重采样有问题 我有一个默认设备,在/etc/asound.conf中启用了dmix插件,并将采样率设置为44100Hz。但据我所知,ALSA将所有流在内部重新采样至48khz,并将其混合,然后再次将其下采样至我所需的输出速率,在我的情况下为44.1khz 这是正确的吗 当使用alsa lib播放音频文件时,是否需要设置该特定wav文件的所有参数 例如:8000hz单声道16位C++ 使用alsa和x27进行音频混音;在c++;,c++,linux,audio,alsa,C++,Linux,Audio,Alsa,我尝试使用alsa同时播放两个wav文件。请注意,wav文件具有不同的采样率。这是可能的,音频流被混合并发送到音频芯片。(我正在嵌入式linux设备上开发。)但其中一个流的播放速度比正常情况快了几倍。所以我想重采样有问题 我有一个默认设备,在/etc/asound.conf中启用了dmix插件,并将采样率设置为44100Hz。但据我所知,ALSA将所有流在内部重新采样至48khz,并将其混合,然后再次将其下采样至我所需的输出速率,在我的情况下为44.1khz 这是正确的吗 当使用alsa lib
- 将snd_pcm_hw_参数_set_rate()设置为8000hz
- snd_pcm_hw_参数设置_格式为16位LE/BE/有符号/无符号
- 单声道的snd_pcm_硬件_参数_设置_通道
只有当第一个正在播放,同时我在流中混合另一个时,第一个wav文件的速度才会改变。请注意,此时硬件设置是相同的。为什么设置stream2的硬件参数(和播放)会改变stream1中的某些内容?ALSA没有固定的48 kHz重采样
dmix
设备使用固定的采样率和格式,但所有使用它的设备通常使用plug
插件来启用自动转换
使用alsa lib时,必须设置所有对您重要的参数;对于未显式设置的任何参数,alsa lib选择一个稍微随机的值
不同的流可以使用不同的参数。ALSA没有固定的48 kHz重采样
dmix
设备使用固定的采样率和格式,但所有使用它的设备通常使用plug
插件来启用自动转换
使用alsa lib时,必须设置所有对您重要的参数;对于未显式设置的任何参数,alsa lib选择一个稍微随机的值
不同的流可以使用不同的参数