首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有人能解释一下Android(Nexus )中的蓝牙遥控器(Nexus)语音命令是如何工作的吗?

有人能解释一下Android(Nexus )中的蓝牙遥控器(Nexus)语音命令是如何工作的吗?
EN

Stack Overflow用户
提问于 2016-07-27 04:31:41
回答 1查看 1.4K关注 0票数 1

有谁能详细说明以下问题吗?

  1. 蓝牙堆栈如何处理音频数据?
  2. 音频命令是如何处理的?
  3. 我们需要什么服务来处理音频数据吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-27 08:56:34

基本上,BLE上的语音命令需要:

  • 一些用于减少所需带宽的音频编解码器(ADPCM和SBC是常见的,OPUS正在出现),
  • 一些通过BLE的音频流方法,
  • 解码并获取从BLE守护进程到命令处理框架的音频流。

在android世界中,命令处理框架是google (关闭的),它最容易从ALSA设备上获取音频。剩下要做的是从远程获取音频到ALSA设备。

因此,对于音频流,您可以:

  • 使用自定义的L2CAP通道或GATT服务,这需要一个定制的安卓服务应用程序和/或修改Bluedroid来处理这些,它需要一种将音频流注入ALSA的方法,很可能是使用“循环”音频设备驱动程序,
  • 将音频声明为自定义HID报告,通过这种方式,Bluedroid将它们注入内核,然后添加一个处理这些报告并公开音频设备的自定义HID驱动程序。

BLE上的音频并不是标准的,所以所有的实现都不会做实际的相同的事情。在Nexus案例中,实现使用HID:它流一个ADPCM音频流,在HID报告中分块。在Android内核中有一个特殊的HID驱动程序“hid-atv-遥控器”,它除了公开输入设备之外,还公开一个ALSA设备。Bluedroid没有关于音频的信息,它所做的就是将HID报告从BLE转发到UHID。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38603765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档