可以将widora-neo作为pulseaudio网络声音播放端, 在ubuntu上实现节目播放和音量调控, 步骤如下:
-
在widora-neo上安装 pulseaudio-daemon, pulseaudio-profiles, pulseaudio-tools 模块.
-
在 /etc/init.d/pulseaudio 中增加如下内容:
......
USE_PROCD=1
PROG=/usr/bin/pulseaudio
##----- additional -----
chown -R :51 /dev/snd
chmod -R g+rw /dev/snd
start_service() {
......
(如有必要再执行 chmod 777 /dev/snd 和 chmod 777 /dev/snd/* )
- 修改 /etc/pulse/system.pa文件,在最后增加:
##--- additional ----
load-module module-alsa-sink device=hw:0 (注:如果选用第2个声卡,那么 device=hw:1, 或则用alsa的mixer: device =dmix )
load-module module-native-protocol-tcp auth-anonymous=1
-
重新启动pulseaudio: /etc/init.d/pulseaudio restart
-
在ubuntu系统上:
5.1 pulseaudio通常是系统启动后自动加载运行的,也可以手工运行:pulseaudio --start, 然后就可以连接widora-neo上的pulseaudio声音服务了。
5.2 执行命令:
pacmd load-module module-tunnel-sink server=192.168.3.24 (widora-neo的IP)
5.3 打开ubuntu的系统声音设置,就可以看到多了一个名为192.168.3.24的声卡,选择这个声卡。 在ubuntu上运行一个或多个播放器(gnome-mplayer, clementine, rhythmbox等都可以), 就可以在widora-neo这端听到声音了。
5.4 如果在/etc/pulse/client.pa 文件中增加:default-server = 192.168.3.24, 那么ubuntu系统开机时就会自动将远程pulseaudio端作为默认的声卡了。 -
在使用widora-neo自带的声卡时如果有杂音,可以在widora-neo端适当减小音量,或打开/usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common 文件, 将里面的volume = merge 修改成 volume=ignore (server和client端都要做? 似乎无用) , 再重启动一下pulseaudio 。
秘籍: 在widora-neo端同时运行mplayer,杂音会消失。
终极秘籍: /etc/pulse/system.pa中将load-module module-alsa-sink device=hw:0 修改成 load-module module-alsa-sink device=dmix (可以尝试下在/etc/asound.conf增加buffer_size 等)
最后一招: 先清cache: echo 3 > /proc/sys/vm/drop_caches 再执行:mplayer -ao alsa
可能不同的声卡情况不同,我用usb声卡就没有杂音。在widora-neo本地播放音乐用自带的声卡也没有杂音,推断应该是pulseaudio的配置或者其与alsa接口引起的。 -
发现与Ubuntu的rhythmbox配合得比较好。有的播放器在偶尔断网恢复后无法继续播放了。
-
如果想在ubuntu端通过话筒喊话,执行 arecord | aplay 命令,再选择aplay的输出对象即可。
! -
同样可以从widora的mic处回传监听声音,只要在system.pa中加入dsnoop,象下面这样:
### --- additional ----
load-module module-alsa-source device=dsnoop
load-module module-alsa-sink device=dmix
load-module module-native-protocol-tcp auth-anonymous=1
在ubuntu端执行如下命令, 先后连接widora_neo上的source和sink服务:
pacmd load-module module-tunnel-source server=192.168.3.24
pacmd load-module module-tunnel-sink server=192.168.3.24
这样设置后就可以进行双向同时传输了!
!
以上设置可以参考:
https://wiki.openwrt.org/doc/howto/pulseaudio
https://wiki.archlinux.org/index.php/PulseAudio_
成功后就可以在ubuntu上实现定点播放了…
!
!

遗憾的是目前仅linux系统对pulseaudio网络声音服务有较好的支持,andriod手机上还缺少相关应用。如果有Ubuntu Phone就很值得尝试一下了!
注意:
- 网络必须保证双向通畅,如果网络不流畅的话, pulseaudio服务端会连不上或中途掉线, 这时候ubuntu端需要重连, widora端也可能需重启pulseaudio服务。
- server端pulseaudio可能与声卡支持的采样率有关?? 比如声卡只支持44.1k的采样率,那么client端的mplayer播放时候需要重采样到44.1k, mplayer -ao pulse -srate 44100 mms://218.28.9.99/gushi, 不然mplayer会报错。 这个现象仅碰到过一次。
- 选择widora_mode client 模式比较好。
- 只要widora上的pulseaudio不退出,ubuntu上的pulseaudio就会一直发音频数据给widora,即使widora没有被ubuntu选择为当前播放器。
!