1

我正在研究在 Linux 平台上用 C 语言编写的互联网广播项目的蓝牙媒体播放器功能。这个想法是:

  • 连接到附近支持 AVRCP 配置文件的 BT 扬声器
  • 通过 BT 将音频传输到 BT 扬声器
  • 处理按钮推送事件

最初我遵循 MPRIS D-Bus 接口规范:https ://specifications.freedesktop.org/mpris-spec/latest/

如果我理解得很好,规范说明如下:

  • 请求一个唯一的总线名称,如下所示:org.mpris.MediaPlayer2.AnyName
  • 公开 /org/mpris/MediaPlayer2 对象路径
  • 实现以下接口:
    • org.mpris.MediaPlayer2
    • org.mpris.MediaPlayer2.Player

所有这些步骤都已完成。我正在使用 D-Feet D-bus 工具来测试属性查询、方法调用,它们都工作正常。

现在我的问题是,当我连接到 BT 扬声器并按下按钮时,应用程序没有收到事件。

您能否指出我缺少的内容以及下一步该怎么做?

提前致谢!

PM:对不起,如果我不清楚,我是一个新手程序员和 Stackoverflow 用户。如果您需要更多信息,请询问我。我会很感激你的任何建议:)

EDIT1:我拥有的源代码是 1200 行,我不知道我可以从代码中为您提取什么。但仅供参考,我正在使用 GLib 的高级 D-Bus 支持:https ://developer.gnome.org/gio/stable/gdbus-convenience.html

4

1 回答 1

0

uinput 模块用于编写 AVRCP 键命令,因此当连接 BT 耳机(A2DP)时,您将需要客户端从 uinput 读取,当连接 avrcp 配置文件时,请检查配置文件/audio/avctp.c::uinput_create() ,键从handle_panel_passthrough()函数发送到内核中的uinput模块

于 2016-04-27T03:19:59.723 回答