use*_*834 22 android pulseaudio streaming
我有一部未使用的 HTC Hero Android 手机(运行 Android OS 2.1),我想将它连接到音频放大器并保持连接数月,这样我就可以将这款 android 手机用作远程脉冲音频服务器/接收器等。
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/音乐——而是一般的声音子系统?
当然,我不是唯一一个希望通过 wi-fi 将音频广播到 android 手机以在适当的扬声器上收听的人?
小智 20
两天前,我偶然发现了这个问题,但无法正确回答。最终我在 AirBubble 手册中读到 RAOP 不受支持。
我终于用pulseaudio的DLNA/UPnP功能解决了这个问题。它就像您期望的那样工作。您可以使用任何带有脉冲音频输出的应用程序播放声音,并在您希望将其重定向到您的 Android 设备时选择流媒体输出。
首先,安装 Rygel:
$ sudo apt-get install rygel rygel-preferences rygel-gst-launch
Run Code Online (Sandbox Code Playgroud)
然后修改 /etc/rygel.conf 文件,使带有参数 enable-transcoding 的行看起来像这样:
enable-transcoding=false
Run Code Online (Sandbox Code Playgroud)
然后加载 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
Run Code Online (Sandbox Code Playgroud)
在您的 Android 设备上下载应用程序 BubbleUPnP。您的pulseaudio 输出设备将列在服务器“%HOSTNAME% 上的声音”下。在声音首选项中将计算机上的输出定向到 DLNA 设备。在 BubbleUPnP 中选择相同的输出。
请记住,BubbleUPnP 免费流式传输前 30 分钟。完整版是 3,49 欧元,但我想它物有所值。我没有得到任何其他应用程序为我工作。
最后,如果您不喜欢使用 rygel-preferences 来禁用媒体浏览器:
$ rygel-preferences
Run Code Online (Sandbox Code Playgroud)
还有一个注意事项:这直接流式传输原始 LPCM 数据,该数据始终约为 250 kB/s。如果您使用的不是 802.11 n 网络,任何虚假的 WLAN 活动都会导致卡顿。如果您打算将您的娱乐解决方案基于无线流媒体,请考虑购买无线路由器。
跟进:转码
为了减少网络开销和卡顿(除非您使用 802.11 n 网络,否则会发生这种情况),可以将音频流转码为 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
Run Code Online (Sandbox Code Playgroud)
使用“Gst Launch”DLNA 服务,该服务现在将在您启动 rygel 时出现。
跟进 2:FLAC
LAME 可能会导致最多 2 分钟 (!) 的延迟。另一方面,FLAC 非常快,通常低于一秒。将上面示例中的行更改为:
mypulseaudiosink-mime=audio/flac
mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! flacenc quality=8
Run Code Online (Sandbox Code Playgroud)
这将流减少到大约 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”作为库。在应用程序中,选择库,现在顶部应该有一个名为“声音打开”的选项。
归档时间: |
|
查看次数: |
34389 次 |
最近记录: |