结果
我想要能够从一个房间走到另一个房间,听到同一首歌在播放。就像你在所有房间里收听收音机一样。
我想要这种效果,但我想听自己的音乐,这可行吗?
材料
- Ubuntu 笔记本电脑。
- Mac 电脑。
第一个选择
- 我已经找到并设置了根据this answer的软件
- 两台电脑和服务器上的所有软件都已设置好,我应该如何继续? http://www.pulseaudio.org/wiki/FirstSteps
结果
我想要能够从一个房间走到另一个房间,听到同一首歌在播放。就像你在所有房间里收听收音机一样。
我想要这种效果,但我想听自己的音乐,这可行吗?
材料
第一个选择
/etc/pulse/default.pa
,取消注释网络访问部分中的这些行。load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
load-module module-zeroconf-publish
load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink"
load-module module-rtp-send source=rtp.monitor
如果pulseaudio服务器尚未运行,需要使用pulseaudio -D
命令将其作为守护进程启动。为了优化声音质量设置,可以根据个人需求调整/etc/pulse/daemon.conf
文件。
在您的网络中,另一种流式传输音频的方法是设置Icecast服务器(参见this question)。
https://secure.wikimedia.org/wikipedia/en/wiki/Music_Player_Daemon
这是一个客户端服务器应用程序。您将音乐存储在服务器上,然后与客户端连接(许多人可以同时进行连接)并控制服务器。
它已经在Ubuntu中了,只需使用apt-get install mpd命令安装。
还有一些很好的文档: https://wiki.archlinux.org/index.php/Mpd
MPD可以流式传输音乐,因此您可以拥有许多客户端(或扬声器,如果您愿意这样称呼它们)来播放音乐。
但不要对音质抱太大期望。流媒体会严重损坏声音(无论您使用的是mpd还是pulseaudio)。最好的做法是将真正的扬声器连接到服务器上,仅使用笔记本电脑对其进行控制。
sudo modprobe snd_aloop
mpc add alsa://hw:1,1
audio_output {
type "httpd"
name "My HTTP Stream"
encoder "vorbis" # optional, vorbis or lame
port "8000"
bind_to_address "192.168.1.38" # optional, IPv4 or IPv6
quality "5.0" # do not define if bitrate is d$
# bitrate "128" # do not define if quality is d$
format "44100:16:1"
max_clients "0" # optional 0=no limit
}
就是这样。在音量控制播放选项卡中选择您的音频源的回环设备。
最后,您可以使用VLC或任何其他流渲染器,在目标点使用httpd url地址:http://192.168.1.38:8000
此答案也可在此处找到。
我不确定DLNA/UPnP是否能实现这样的功能,因为我自己对它不太熟悉,但是我在这里提供一些链接,希望能有所帮助:
虽然快速搜索结果显示似乎不可能同步...
foobar_v1.2.5.exe
$ wine foobar2000_v1.2.5.exe
~/.wine/drive_c/Program Files/
)ufw
没有阻止相关流量这种方法的优点是,如果在 Android 上暂停,它会积累一个缓冲区(因为服务器仍在发送数据)。
在Ubuntu(Wine版本1.5.28-0ubuntu1~ppa1
)和Windows上进行了测试。