如何使用Android 2.1手机作为远程音频接收器?

我有一个未使用的HTC Hero Android手机(运行Android OS 2.1),我想将它连接到音频放大器并保持连接数月,所以我可以使用这个Android手机作为远程pulseaudio服务器/接收器/等。

Android Market上有“远程音频”应用程序,可以从/ dev / dsp获取流。 / dev / dsp在ubuntu 10.10中被错误/无论什么原因禁用 ,甚至在我按照这个线程启用它之后 – 按照这些说明后它没有用,所以当我点击我的android上的播放/暂停按钮时 – 没有真的发生了,mpg123 song.mp3仍然使用我的笔记本电脑扬声器。 最后| head甚至没有显示这个新用户登录(我想它应该出现在这里?)

通过“pulseaudio”搜索我在Android市场上发现了Airbubble ,但它说“在MacOS X上不能与RaopX配合使用,而在Linux上用于Pulseaudio的raop模块”。 (C)

那么有没有办法将Android手机用作远程音频接收器,理想情况下不仅限于播放mp3 /音乐 – 而是一般的Sound子系统?

当然,我不是唯一一个希望通过Wi-Fi向Android手机播放音频以便在合适的扬声器上收听音频的人吗?

我认为你过度使用这个想法,试图让你的手机做一些从未打算做的事情(连接到PulseAudio或更低级别的东西)。 让你的电脑做艰苦的工作。

我建议使用像Icecast这样的教程 (使用此处的教程 ),并使用30多种适用于Android的应用程序之一进行流式处理。

两天前,我偶然发现了这个问题而无法做到这一点。 最后我在AirBubble手册中读到RAOP不受支持。

我终于用Pulseaudio的DLNA / UPnPfunction解决了它。 它的工作方式与您期望的一样。 您可以使用任何带有pulseaudio输出的应用程序播放声音,并在您想要将其重定向到Android设备时选择流式输出。

首先,安装Rygel:

$ sudo apt-get install rygel rygel-preferences rygel-gst-launch 

然后更改文件/etc/rygel.conf,以便带参数enable-transcoding的行如下所示:

 enable-transcoding=false 

然后加载DLNA和TCP模块并启动rygel:

 $ pactl load-module module-http-protocol-tcp $ pactl load-module module-rygel-media-server $ pactl load-module module-null-sink sink_name=upnp format=s16be channels=2 rate=44100 sink_properties="device.description='DLNA/UPnP Streaming' device.bus='network' device.icon_name='network-server'" $ rygel 

在您的Android设备上下载应用程序BubbleUPnP。 您的pulseaudio输出设备将列在服务器“Sound on%HOSTNAME%”下。 在声音首选项中将计算机上的输出定向到DLNA设备。 在BubbleUPnP中选择相同的输出。

请记住,BubbleUPnP免费播放前30分钟。 完整版是3,49€,但我想这是值得的价格。 我没有得到任何其他应用程序为我工作。

最后,如果你不喜欢使用rygel-preferences,你可以禁用媒体浏览器:

 $ rygel-preferences 

另一个抬头:这直接传输原始LPCM数据,持续约250 kB / s。 如果您使用的是802.11n网络,那么任何虚假的WLAN活动都会导致口吃。 如果您计划将娱乐解决方案建立在无线流媒体上,请考虑购买无线路由器。

跟进:转码

为了减少网络开销和口吃(除非你在802.11n网络上,否则会发生这种情况),可以转向将音频流转码为mp3。

将其粘贴到〜/ .config / rygel.conf中

 [GstLaunch] enabled=true launch-items=mypulseaudiosink mypulseaudiosink-title=Sound on @HOSTNAME@ mypulseaudiosink-mime=audio/mpeg mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! lamemp3enc target=quality quality=6 

使用“Gst Launch”DLNA服务,该服务现在将在您启动rygel时显示。

关注2:FLAC

LAME最多可能导致2分钟(!)的延迟。 另一方面,FLAC非常快,通常时钟低于一秒。 将上例中的行更改为:

 mypulseaudiosink-mime=audio/flac mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! flacenc quality=8 

这将流降低到大约100 kB / s,允许在具有多个用户的大多数802.11g网络上流畅播放。 我在下载torrent时测试了它。 全速,有一些口吃,但当我将下载速度限制在我的最大带宽以下约200 kB / s时,它再次平滑。

此外,您已经消除了任何质量损失。


上面的几个问题 – 检查并编辑~/.config/rygel.conf ,如果没有默认加载/etc/.config/rygel.conf (?)。

接收器创建不适用于以后的Ubuntu版本。

然而,对我有用的是遵循所有指令(没有创建水槽)。 然后运行paprefs ,在“网络服务器”选项卡上,选择底部选项“使本地声音设备可用作uPnP服务器”(也可能需要子选项)。

启动rygel,在PulseAudio设置中选择新的“DLNA / UPnP Streaming”选项。

在BubbleUPnP上选择“Gst Launch”作为库。 在应用程序中,选择库,现在应该有一个名为“Sound on”的选项。

Shairplay不支持TCP和raop_play(我认为pulseaudio-module-raop基于此)不支持UDP。 为什么raop是TCP只是很奇怪,UDP似乎是一个更简单,更适合的协议。

如果你的来源是flac,那么通过MP3进行的icecast会降低质量,而且更多的是CPU耗费。 MPD本身支持pulseaudio输出,因此您可以使用例如带有mpdroid应用程序的Android手机“打开和关闭”房子的不同房间。 如果您可以使用airplay基座作为端点,那么您将拥有一个出色的设置。 但你不能cos raop不支持更简单的UDP端点!

您可能希望在Pulseaudio社区之外寻找。

我正在尝试使用Subsonic这样做。 到目前为止它运作良好。 我已将它安装在我的Ubuntu系统,我的客厅Roku,我的主要Android手机和我的辅助Android手机上,仅限wifi。 所有这些设备都通过wifi连接。 我也计划在Windows机器上安装它,以便我的妻子可以将她的iTunes集合流式传输到其他设备。

我现在可以将音频和video从我的Ubuntu系统流式传输到客厅里的Roku,或者我的Android,我可以带到厨房或折叠洗衣房。 我也可以从任何有网络浏览器的计算机上流式传输。 我在处理长期无聊的房屋维护项目时播放音乐和播客。

到目前为止它运作良好。

您可以在服务器上使用Foobar2000,在客户端上使用BubbleUPnP (付费软件)。

  1. 得到酒
  2. 获取foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. 下一个,下一个,下一个…… 🙂
  5. 得到foo_upnp
  6. 在foobar2000的components文件夹中提取(可能在~/.wine/drive_c/Program Files/
  7. 推出foobar2000
  8. 转到库→配置→播放→输出→设备,然后选择“空输出”
  9. 确保ufw没有阻止相关流量
  10. 在BubbleUPnP中:
    1. 转到Devices→Libraries并选择foobar2000服务器
    2. 在“库”中,选择“播放流捕获”

这种方法的优点是,如果您在Android上暂停,它将累积缓冲区(因为服务器仍在发送)。

测试了Ubuntu(Wine版本1.5.28-0ubuntu1~ppa1 ,foobar2000版本1.2.5和foo_upnp版本0.99.46)和Windows。