linux - 没有 pulseaudio 的 A2DP 接收器

标签 linux bluetooth alsa a2dp

所以我试图让我的 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。 有什么想法吗?

最佳答案

我知道这是一篇旧帖子,但希望答案对当前从事此工作的人有用。

您可以使用/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 之间的结构和接口(interface),这是我在互联网上找不到的。

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 文件后运行它们。

关于linux - 没有 pulseaudio 的 A2DP 接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12338621/

相关文章:

linux - 如何在 Centos 6.8 中更新 PHP?

c - 将时钟插入程序

android - BluetoothDevice 在 getName() 上总是返回 null

audio - 无法播放已处理的音频数据(无符号字符)

Linux 如何在 RAM 缓冲区中录制声音并使用自定义延迟播放音频

linux - chef 用户资源不会更新现有用户的主目录(如果它已经存在)

linux - udev $kernel 或 %k 替换没有正确扩展

Android:同时从 2 个设备扫描多个蓝牙的行为

c# - .NET 核心蓝牙

linux - 如何使用 ALSA 将音频时钟从属到系统时钟?