audio - 树莓派只播放单声道声音

标签 audio raspberry-pi alsa

我在新的 SD 卡上使用 noobs 安装了 raspbian。

我在另一个 SD 中有带有 XBMC 的 XBian,它可以工作,因此硬件没问题。

问题是我无法播放立体声,因此我无法通过 HDMI 播放,并且我无法从 ZynAddSubFX 播放,ZynAddSubFX 是一个 midi 采样器,也是我此项目的最终目标。

这是 amixer 的结果:

Simple mixer control 'PCM',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
Playback channels: Mono
Limits: Playback -10239 - 400
Mono: Playback -1900 [78%] [-19.00dB] [on]

单声道播放对我来说很奇怪,播放的局限性也很可疑。 如果我安装pulseaudio,那么amixer需要很长时间来响应,但这就是结果:

amixer
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 27111 [41%] [on]
  Front Right: Playback 27111 [41%] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch cswitch-joined penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 65536
  Front Left: Capture 65536 [100%] [on]
  Front Right: Capture 65536 [100%] [on]

更加方便和令人期待。

问题是我不想使用pulseaudio,实际上,我认为ZynAddSubFX与pulseaudio不兼容。

当然,我已经用谷歌搜索了很多,但没有明确的解决方案。我发现了强制模拟输出的技巧(amixer cset numId=3 1),它的工作原理是我确实听到了一些东西,但主要问题是在那里..只有单声道。

这是 lsmod 的输出:

lsmod
Module                  Size  Used by
snd_bcm2835            16165  0
snd_soc_bcm2708_i2s     5474  0
regmap_mmio             2806  1 snd_soc_bcm2708_i2s
snd_soc_core          131268  1 snd_soc_bcm2708_i2s
regmap_spi              1897  1 snd_soc_core
snd_pcm                81593  2 snd_bcm2835,snd_soc_core
snd_page_alloc          5156  1 snd_pcm
regmap_i2c              1645  1 snd_soc_core
snd_compress            8076  1 snd_soc_core
snd_seq                53769  0
snd_timer              20133  2 snd_pcm,snd_seq
snd_seq_device          6473  1 snd_seq
leds_gpio               2059  0
led_class               3688  1 leds_gpio
snd                    61291  7 
snd_bcm2835,snd_soc_core,snd_timer,snd_pcm,snd_seq,snd_seq_device,snd_compress

有什么线索吗?还有其他可能有趣的输出吗?

最佳答案

我正在使用 Debian 4.4.6-1+rpi14 (2016-05-05) 并且有一个非常类似的问题。仅当使用 ALSA 时声音为单声道。声音不连续且质量较差。如果我使用 omxplayer 输出是立体声并且音质很好。我发现如果我使用 mplayer -ao alsa:device=hw=0,0 那么音质和使用 omxplayer 一样好,而且是立体声!如果默认设备 hw:0.0 未作为参数给出,那么 ALSA 就无法正常工作。所以pulseaudio的解决方案是添加device=hw:0,0选项。

pactl load-module module-alsa-sink device="hw:0,0"
pactl set-default-sink alsa_output.hw_0_0

现在pulseaudio显示立体声输出,音质与omxplayer一样好。

关于audio - 树莓派只播放单声道声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21233803/

相关文章:

c# - 播放MP3文件(C#表格)

audio - Liquidsoap 未明确定义变量

javascript - 单击播放音频时出现不必要的延迟

linux - 在 ALSA 中设置 channel 音量

c++ - 采样率偏差和声音播放位置

c# - 使用 C# 以编程方式切换耳机中的立体声音频 channel (左 <> 右)

mysql - 从 SQL Management Studio 到 RPI MySql

c# - Mono 3.4.1 无法在树莓派上正确编译

linux-kernel - Raspberry Pi 4 U-Boot 在启动时卡在启动内核中

linux - 在 ALSA MIDI SysEx 交换上双向嗅探/监听