问题标签 [headset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 使用 android.net.rtp 进行 VoIP
我正在尝试使用该android.net.rtp
库来制作 VoIP 应用程序。它的音频流可以正确发送和接收。
我的问题是:被叫方电话的扬声器工作正常,但耳机始终处于静音状态(即使我关闭了扬声器)。
我的代码:
java - 带耳机的蓝牙 android 服务器客户端
我正在尝试在 android 上创建一个服务器,它将监听传入的连接,例如我拥有的特定耳机。
我已经阅读了很多教程、StackOverflow 中的帖子和 Android|Developer 中的帖子,但我似乎不明白一些事情。
1)UUID,它是每个蓝牙设备的特定地址吗?还是需要在服务器和客户端中才能创建连接的共享密钥?我的猜测是后者,因为那里还有 MAC 地址......
2) 当我将耳机与手机配对时,耳机是否会保存上次配对设备的 MAC\UUID?
3)蓝牙芯片是否也能以这种方式工作?手机开机后立即连接到配对设备,所以我的猜测是它为每个配对设备打开一个 Socket 并等待它打开,这是真的吗?
4)是否有可能完成我正在尝试的事情?意味着创建一个将接受来自耳机的连接的 BluetoothServerSocket 吗?
服务器端的代码示例:
提前致谢。
android - 如何拦截蓝牙耳机的 CALL 按钮?
我有一个单按钮蓝牙耳机(Jabra BT2045),想拦截按钮按下。我想要这个,以便后台助手Service
可以解释用户的语音命令并采取相应的行动。
我已经定义了一个可以很好地拦截的BroadcastReceiver
命名(使用有线媒体耳机),但重要的是我拦截了 BT 呼叫按钮。我曾尝试根据我已阅读的另一个建议拦截该操作,但这也失败了。MediaButtonIntentReceiver
ACTION_MEDIA_BUTTON
CALL_BUTTON
或者,当我双击按钮时,它会呼叫最近的人,当我长按时,它会调出语音拨号器。
如何拦截单个按钮或这些程序(+阻止它们)?由于我正在对一个想法进行原型设计,因此欢迎黑客攻击,但无论 Android 版本如何都能工作的解决方案是最好的。
我正在使用带有 Android 4.3 的 Galaxy Nexus。
AndroidManifest.xml(包括接收器定义)
接收器定义:
更新1:
如果我为活动设置了一个额外的意图过滤器(见下文),它将在长按时启动(在将其设置为默认值之后)。这似乎我正朝着正确的方向前进,但现在活动开始多次并导致奇怪的影响。
现在我正在调查只启动一次活动,当活动恢复时,我必须能够检测它是从启动器启动还是从VOICE_COMMAND
操作启动。为了使这种方法起作用,我需要强制该活动只启动一次(按下按钮应该只是恢复活动)。
此外,如果可能的话,我想让它成为服务运行时的默认活动。
更新 2:
不幸的是,当蓝牙耳机 SCO 通道被激活时,将不会继续创建活动。我的应用程序要求打开此通道,因为用户将收到必须来自 BT 耳机的定期更新(通过 TTS)。这种方法可能会产生很多开销。
android - 无法使用麦克风
我正在开发一个 VoIP 应用程序。
在 Galaxy Tab 4.0.4 上使用蓝牙耳机时,我遇到以下问题:
当 VOIP 通话过程中有语音通话时,或者当我停止应用程序并重新启动应用程序时,它不会再次使用蓝牙耳机麦克风。
当问题发生时,即使在停止和启动蓝牙适配器或蓝牙设备后,它也不会使用蓝牙耳机麦克风。只有 adb reboot 似乎可以解决问题。
有一个我不完全理解的“脏”修复:
当问题发生从我的应用程序调用时:
audioManager.setMode(AudioManager.VOICE_CALL)
audioManager.setMode(AudioManager.NORMAL)
将重新启用蓝牙耳机的麦克风。
如果此呼叫始终有效,则足以解决问题,但是有一个问题:有时(大约 25%)在呼叫片段后,每次启用 SCO 时,我都会开始在蓝牙耳机上收听非常烦人的干扰
我猜它们与 AudioManager 文档中的以下注释有关:'特别是,MODE_IN_CALL 模式应该只在电话应用程序拨打电话时使用,因为它会导致来自无线电层的信号馈送到平台混音器。 '
问题是:关于可能导致什么以及如何避免解释问题的任何想法?
android - 广播接收器最高优先级不起作用
我正在使用 ACTION_MEDIA_BUTTON 处理程序做一个应用程序,但它似乎总是被 MX Player 或 Apollo 拦截,我没有得到任何意图
我已经尝试在标签中设置 1000 和 2147483647 优先级,并且直接在构造函数之后使用 setPriority
应用程序在没有 MX Player 或 Apollo 时运行
我也尝试过使用 Google Play 中的 Headset Interceptor 应用程序,我尝试使用 Autostarts 应用程序拒绝 MX Player 的事件 - 没有任何帮助
在 onCreate 中:
在接收器
在清单中
android - Android中的耳机按钮
我将priority
我的意图设置为 100000,但当我按下耳机按钮时,我的应用程序仍然被忽略。相反,只需触发Built-in
我手机中的音乐播放器。我需要做什么才能完成这项工作?
这是我的代码
android - 同时收到 MEDIA_BUTTON 按钮事件 ACTION_DOWN 和 ACTION_UP
在我的应用程序中,我想测量媒体按钮按下的时间。我注册了一个监听媒体按钮按下的广播接收器:(请原谅愚蠢的错误,因为我是初学者......)
broadcastReceiver 激活活动中的方法(不理想,但这仅用于测试目的):
该活动在调用 startTimer() 时占用系统时间,然后在调用 stopTimer 时再次占用系统时间并显示差异:
问题是,从我看到的两个事件同时调用,当我放开按钮时,最终使计时器计数的时间非常短(几毫秒),与我按下的持续时间无关按钮。
我究竟做错了什么?
android - Android蓝牙耳机通话按钮不起作用
如果按下蓝牙耳机按钮,我想听。显然我的耳机没有媒体按钮,只有一个通话按钮。因此android.intent.MEDIA_BUTTON
将不起作用。我也尝试在我的程序中通过 rfcomm 连接到耳机,但无济于事。只是无效的 rfc 插槽 ID。
按下耳机按钮后,我确实在日志中收到以下错误:
所以它确实被检测到了。有没有人有什么建议?
我的设备是:google nexus 7(2012)和
我的耳机是:plantronics ml18
bluetooth - 从定制的蓝牙设备向安卓手机发送命令来控制音乐播放器
我使用以下组件创建了一个简单的蓝牙设备
- HC05模块
- Arduino Uno 板(带有可重新编程的微控制器)
我想知道是否可以从我的 BT 设备发送命令,就好像这些命令是从蓝牙耳机发送的一样?
我的意思是:
- 我们发送 0x00000055 键码 - 音乐暂停(KEYCODE_MEDIA_PLAY_PAUSE)
- 我们发送 0x00000058 - 上一首歌曲开始播放(KEYCODE_MEDIA_PREVIOUS)
- ...
这是 android 使用的键码的完整列表:http: //developer.android.com/reference/android/view/KeyEvent.html
我可能可以创建一个单独的应用程序,它将读取传入的命令并模拟耳机按钮按下,但这不是我想要的。就我而言——有些耳机是即插即用的,这意味着安卓设备上不需要安装额外的应用程序。这是我目前用来向 Android 手机发送命令的代码:
两个设备都已配对,但我手机上的音乐播放器不受这些命令的影响。是否可以在不为“来自 BT 的传入命令”创建辅助应用程序的情况下控制音乐播放器?
android - Android: Forcing external microphone (jack input 3.5mm) to stay on
How do I force the Android system to select the 3.5mm Jack as my microphone source? I am using the AudioRecord class to do the recording.
I am using an external Microphone. When it is detected all works well, but sometimes the external microphone is not detected automatically. A TRRS splitter (cheap $3 thing) is used to split the 3.5mm Jack into separate Mic and Headphone jacks (I need simultaneous recording and playback).
The AudioManager.setWiredHeadsetOn() is deprecated and instructions say not to use it.
1) Do I maybe need additional external hardware to provide the correct microphone impedance?
2) Can I force the input in code?
3) Can a custom ROM archive audio control at this level - maybe this is the best option?
Thanks