没有脉冲音频的 A2DP 接收器
Posted
技术标签:
【中文标题】没有脉冲音频的 A2DP 接收器【英文标题】:A2DP sink without pulseaudio 【发布时间】:2012-09-02 13:09:35 【问题描述】:所以我试图让我的 linux 服务器播放使用蓝牙从我的 android 手机发送的音乐(linux 机器是 A2DP 接收器,手机是源)。 到目前为止,我所做的是:
安装 bluez 并启用 audiosource/audiosink 配对手机和服务器 从手机连接到服务器(手机说它正在通过蓝牙传输音频)但我什么也听不见。此外,互联网上的大多数指南都假设使用 Pulseaudio,我更喜欢使用 ALSA。
我目前在 /etc/asound.conf 中有以下内容:
pcm.!default
type bluetooth
profile "auto"
我正在运行 Bluez v4.99 和 Alsa v1.0.25。 有什么想法吗?
【问题讨论】:
你有没有想过这个问题?我也有同样的问题... 【参考方案1】:我知道这是一篇旧帖子,但希望答案对目前从事此工作的人有用。
您可以使用 /etc/bluetooth/audio.conf,这是系统范围的文件,或 ~/.asoundrc,这是您的本地文件。两者都由 BlueZ/ALSA 读取。但是,我认为您需要在配置文件 z.B. 中包含 MAC 地址:
pcm.btheadset
type bluetooth
device "XX:XX:XX:XX:XX:XX" #MAC address
profile "auto"
我为此找到的最佳资源是:
1) James B 的博文:Bluez must be one of the best kept secrets in Linux他解释了 BlueZ 和 ALSA 之间的结构和接口,这是我在互联网上其他任何地方都找不到的。
2) 他的第二个帖子,代码:Bluez A2DP AudioSink for ALSA
3) ALSA 网站,介绍了 pcm 插件的结构,但并没有很好地解释它们。
4) 一些 ALSA 插件教程:The ALSA wiki
一些有用的命令:
$sudo service bluetooth restart
$sudo alsa force-reload
在更改 asoundrc 或 audio.conf 文件后运行这些文件。
【讨论】:
【参考方案2】:在这里您可以找到使用 ALSA 或 Pulseaudio 配置蓝牙的手册:
-在 Linux Mint 17.3 Mate,64 位/Ubuntu 14.04 Mate,64 位上测试-
如何在没有 PA 的情况下使 ALSA 和蓝牙协同工作
这部分适用于没有 Pulseaudio 的纯 ALSA 系统,例如 KXStudio、QStudio64、Tango studio..!
确保已卸载 Pulseaudio 并且您的声卡 在 ALSA 中正确配置!
删除脉冲音频cookies和文件 /home/USERNAME/.config/pulse
-
修改您的 bluetooth-audio.conf:
类型:
gksudo puma /etc/bluetooth/audio.conf
设置
# This section contains options which are not specific to any
# particular interface
[一般] 启用=套接字
保存文件。
-
设置 ~/.asoundrc 文件
类型:
sudo hcitool 扫描
扫描... XX:XX:XX:XX:XX:XX 立体声耳机
在您的主文件夹中创建一个名为 .asoundrc 的隐藏文件!然后写入:
pcm.!default
type plug
slave.pcm
type bluetooth
device "XX:XX:XX:XX:XX:XX"
profile "auto"
将“XX:XX..”替换为您设备的地址。
保存文件!
在更改 asoundrc 或 audio.conf 文件后运行这些:
sudo service bluetooth restart
sudo alsa force-reload
或重新启动您的计算机! —————————————————————————————————————————————
在您的任务栏上转到您的 blueman-applet,搜索并设置您的新设备! 注意:某些蓝牙设备默认需要密码(例如 0000)
而其他一些则采用随机配对。 让您找到并配对的设备保持“信任”!通过A2DP将您的设备作为音频连接!
————————————————————————————————————
如果您的设备与您的系统连接,您可以在将播放器中的输出设置为“默认”!
———————————————————————————————————————
将主文件夹中的 .ASOUNDRC 重命名为“.ASOUNDRC_OFF” 无需蓝牙即可恢复旧系统设置!
类型:mv /home/USERNAME/.asoundrc /home/USERNAME/.asoundrcOFF
->禁用蓝牙特定的asoundrc
输入:mv /home/USERNAME/.asoundrcOFF /home/USERNAME/.asoundrc
-> 启用它!
替代方案:
在您的主文件夹中使用 .asoundrc 制作两个“脚本”来激活/停用蓝牙:
创建一个空文件并写入/粘贴:
#!/bin/bash
mv /home/USERNAME/.asoundrc /home/USERNAME/.asoundrcOFF
or:
#!/bin/bash
cd /home/USERNAME/
mv .asoundrc .asoundrcOFF
要再次为蓝牙激活 .asoundrc,请使用以下条目创建另一个文件:
#!/bin/bash
mv /home/USERNAME/.asoundrcOFF /home/USERNAME/.asoundrc
或:
#!/bin/bash
cd /home/USERNAME/
mv .asoundrcOFF .asoundrc
使文件可执行并使用“用终端打开”运行它们! 现在您有两个“按钮”来打开或关闭蓝牙声音。
给他们单独的图标: ;-)
———————————————————————————————————————-
玩家
————
推荐使用totem、Qmmp或者Banshee-player——因为没有什么比 玩和听!图腾播放器也显示视频。
VLC 播放器需要“默认”声卡驱动才能正常工作!
签入:/home/USERNAME/.config/vlc/vlcrc
那个 alsa-audio-device 在 >>line1666
# ALSA Device Name (string)
alsa-audio-device=default
使用以下命令通过终端使用播放器: 要播放音乐,请输入:
MPlayer
———––
mplayer /home/USERNAME/Musik/1.mp3
如果您没有听到声音或出现错误,请尝试:
mplayer -ao alsa:device=default /home/USERNAME/Musik/1.mp3
VLC 播放器
————-
cvlc /home/USERNAME/Musik/1.mp3
vlc /home/USERNAME/Musik/1.mp3
rvlc /home/USERNAME/Musik/1.mp3
To add whole directories type:
rvlc add /home/USERNAME/Musik/
键入:开始/停止/下一步...进行导航!
或使用 vlc-gui。
———————————————————————————————————————-
要将 mplayer 与图形界面一起使用,您必须安装 gui 包: 类型:
sudo apt-get install mplayer-gui
通过 Ctrl-Alt-T 打开终端并使用以下命令。使用这些行并一一键入/复制以避免混淆(!):
cd /usr/share/mplayer/skins/default
for FILE in *.png; do sudo convert “$FILE” -define png:format=png24 “$FILE”; done
cd /usr/share/mplayer/skins; sudo rm default; sudo ln -s Blue default
—————————————————————————————————————
现在您可以正常启动 mplayer-gui!
如果你更喜欢终端类型:
gmplayer /home/USERNAME/Musik/1.mp3
或
gmplayer -ao alsa:device=default /home/USERNAME/Musik/1.mp3
if you have problems!
没有 gui 的终端命令:
mplayer /DIRECTION/TO/FILE
可用的输出模块和驱动程序:
mplayer -vo help
————————————————————————-
带有 PULSEAUDIO 的蓝牙
—————————————————--------
对于带有 pulseaudio 的 Linux 系统:
(1.) 编辑 /etc/bluetooth/audio.conf 并取消注释以下行:
AutoConnect=true
运行以下命令为 blueman 和相关模块安装最新的软件包:
sudo add-apt-repository ppa:blueman/ppa
sudo apt-get 更新
sudo apt-get upgrade blueman 在此输入代码
(3.) 检查 /etc/pulse/default.pa 中是否添加了以下行:
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
如果没有,请添加行。
重启!
-
运行新的 blueman-applet。
右键单击面板小程序并打开蓝牙。 你的蓝牙设备的旧配置仍然存在,删除它。 右键单击 blueman-panel 小程序并选择设置新设备。 完成您设备的向导。(如果您在“配对”时遇到问题,请重新启动系统并跳过此步骤!)
现在您获得了连接的蓝牙设备!
要通过它发送/收听音频,只需执行以下 2 个步骤:
在任务栏中右键单击打开 Mate-volume control-settings(或 pavucontrol), 浏览到“硬件”- 并使用下拉菜单“关闭”所有其他声卡的内置音频配置文件
让蓝牙设备激活!
使用其他下拉菜单将蓝牙设备设置为使用A2DP现在启动totem-player或vlc(带有pulseaudio-output)发送音频到蓝牙!
享受你的声音! ;-)
WLAN 问题:
—————— 如果您在连接到蓝牙设备后看到 WiFi 连接断开,请运行以下命令 命令:
$ echo “options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 auto_agg=0 swcrypto=1” |
sudo tee -a /etc/modprobe.d/iwlwifi.conf > /dev/null
由 chalee 在 2017 年为 LM 17.3 (Rosa) MATE 和 Ubuntu 14.04 测试:
http://mayastudio.tumblr.com/bluetooth
【讨论】:
该手册已被编辑,因为 .asoundrc 中缺少一个条目,该条目使 firefox 也可以使用蓝牙! ;-) 这不是 A2DP SINK。【参考方案3】:我的猜测是您的音频路径没有将蓝牙路由到您的扬声器。我看到了类似的问题,通过手动执行步骤 5“将 PulseAudio 蓝牙源连接到 PulseAudio ALSA 接收器”修复了这个问题:http://jprvita.wordpress.com/2009/12/15/1-2-3-4-a2dp-stream/
【讨论】:
是的,我同意。但我不打算使用 Pulseaudio。那么问题来了,我怎样才能使用 ALSA 来实现呢?【参考方案4】:我只是尝试做同样的事情,我使用的是 Fedora 19,所以你的里程数因人而异。这些是我采取的步骤。
-
使计算机可被发现
将手机与电脑配对(旁边有耳机标志)
在我的 HTC 手机上,我在配对时单击了“连接”
进入 gnome3 的声音设置
转到输入选项卡
为您的手机选择蓝牙项
也许可以调节音量...
【讨论】:
以上是关于没有脉冲音频的 A2DP 接收器的主要内容,如果未能解决你的问题,请参考以下文章