当前位置: 首页 > 知识库问答 >
问题:

检测并区分android中不同类型的音频设备

鲜于承基
2023-03-14

在android中是否有区分不同类型的音频设备?例如,我从不同的制造商获得了音频设备类型A和音频设备类型B,这两种设备都使用音频插孔。每当用户插入音频设备类型A或类型B时,我想知道设备ID或名称、类型。我可以使用BroadcastRecencer检测音频设备的插入/输出。但无法获取设备ID或名称或类型。场景是:当音频设备类型A连接时,开启服务A,当音频设备类型B连接时,开启服务B。

共有1个答案

傅和璧
2023-03-14

不,不幸的是,这是不可能的。音频插孔是一种纯粹的模拟标准,它只是不提供任何识别设备的方法。唯一可以识别的是它是耳机(无麦克风),耳机(带麦克风)还是线路输入(具有比耳机更高的输入阻抗)。后一种区别实际上并没有传达给应用程序,它只会影响Android如何进行音频路由和应用音量设置。

对于USB和蓝牙设备,有关设备制造商和ID的信息是可用的,因此可以区分它们,但您需要使用比广播接收器更低级别的API。看见https://developer.android.com/guide/topics/connectivity/usb/host.htmlhttps://developer.android.com/guide/topics/connectivity/bluetooth.html.

 类似资料:
  • 问题内容: 我有200多个MP3文件,我需要使用静音检测来拆分其中的每个文件。我尝试了Audacity和WavePad,但它们没有批处理过程,将它们一一制作很慢。 场景如下: 分割曲目,而静音2秒或更长时间 然后在这些音轨的开头和结尾添加0.5 s并将其另存为.mp3 BitRate 192立体声 标准化卷以确保所有文件的卷和质量相同 我尝试了FFmpeg,但没有成功。 问题答案: 我发现pydu

  • 我从S3读取PARQUET文件时出错,原因是“final_height”列在同一个分区中有String和Double类型。供参考,拼花文件中有20多列。我得到的错误是: 当"part1.gz.parquet"有X列的字符串数据,而"part2.gz.parquet"在同一列中有双精度数据时,找到了一些解决方案。但是当在同一分区中发现同一列中的不同类型时,它们不起作用。 试: 使用合并模式和推断模式

  • 检测网站是否正在移动设备或台式机/笔记本电脑上打开。 使用正则表达式来测试 navigator.userAgent 属性以确定打开设备是移动设备还是台式机/笔记本电脑。 const detectDeviceType = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.us

  • 我创建了一个如图所示的按钮布局设计。如何实现不同尺寸屏幕的设计模式?这种布局适合3.7英寸屏幕,但不适合其他屏幕。可能是scrollview是一个选项,但这并不满足我。我怎么能做到呢?有什么帮助吗? 这是我的xml文件

  • 我的应用程序需要知道用户选择的基本音频路径的能力。在iOS上,这是微不足道的,因为你只需注册一个回调,你就知道音频的确切去向。 在Android上,我很高兴看到< code>MediaRouter类,然而令我沮丧的是,没有可预测的方法来确定路由类型。例如,当切换到蓝牙A2DP设备时,唯一的标识项是< code>RouteInfo.getName()方法,但这会返回A2DP设备的友好名称,因此无法进

  • 问题内容: 尽管我在此站点上有许多有关音高检测概念的问题……他们都处理了我不熟悉的神奇 FFT 。我正在尝试构建需要实现音高检测的Android应用程序。我绝对不了解用于执行此操作的算法。 它不能 是 硬可以吗?毕竟,Android市场上大约有80亿个吉他调音器应用程序。 有人可以帮忙吗? 问题答案: 快速傅立叶变换将功能从时域更改为频域。因此,而不是在那里是信号,你是从麦克风获取和是信号的时间指