问题标签 [bluetooth-sco]

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.

0 投票
0 回答
521 浏览

android - 通话后重新连接蓝牙耳机(免提模式)

我正在开发一个使用 AudioManager 的 MODE_IN_CALL 通过蓝牙耳机播放音频的 Android 应用程序。我能够使用 PhoneStateListener 检测电话的开始和结束。因此,我可以在通话开始时暂停音频,但在通话结束后无法重新连接和恢复音频。

在通话期间,系统以 MODE_IN_CALL 运行,但当通话结束时,系统将 AudioManager 的模式更改为 MODE_NORMAL 之前大约有 4 秒的延迟。因此,当我在通话后重新连接到蓝牙设备时,系统会在四五秒的延迟后强制断开连接。我目前正在使用计时器来解决这个问题,但我认为这不是一个很好的解决方案。

我想知道是否有一些可能有用的意图或系统事件。或任何其他解决此问题的方法。提前感谢您的帮助。

0 投票
2 回答
2688 浏览

java - 如何在android中以编程方式使用HFP蓝牙连接到远程电话

有没有办法在免提模式 (HFP) 模式下以编程方式配对和连接到远程设备?

到目前为止,我只能通过代码以正常方式连接到远程设备。我需要在 HFP 配置文件模式下连接到远程设备。

0 投票
5 回答
2109 浏览

android - 来电后蓝牙 SCO 失败

我正在尝试通过 SCO 发送应用程序的所有音频。

我能够成功发送音频,

但是当有来电时,我需要断开 SCO 的连接,以便应用程序音频不会干扰通话,

问题是,当我尝试在通话后将音频重新路由到 SCO 时,它不起作用。

这是我用来将音频发送到 SCO 的代码:

当我stopBluetooth()正确呼叫时,应用程序的音频不再发送到耳机,

但是当我打电话时restartBluetooth(),音频播放不是按预期从耳机播放,而是从手机扬声器播放。

0 投票
1 回答
2808 浏览

android - 如何通过Android中的免提音频网关通过AG从HF发起呼叫?

到目前为止,我已经能够通过从加载我的应用程序的手机(HF 或免提)到目标手机的蓝牙连接,从 Android 手机 AG(音频网关)发起呼叫。我已将此代码用于此过程:

现在,我可以从我的免提 (HF) 设备发起呼叫,但我无法听到铃声或听到其他人说话。

到目前为止,看起来我刚刚能够触发调用机制。如何建立音频连接,以便我也可以听到目标电话上的扬声器以及说话?

0 投票
1 回答
1222 浏览

java - 是否有 AT 命令可以在通过蓝牙连接的两个设备之间引导音频(语音通话)?

我有两个通过蓝牙连接的设备。目前,我要在使用免提音频网关连接到另一台设备后,从我的设备(以编程方式从我的应用程序)向另一台设备发起语音呼叫。

但是,一旦建立呼叫,我只能发起呼叫,而无法听到另一端或发送我的声音。我意识到我必须为此做更多的事情。但我无法找出它是什么。也许有一个 AT 命令用于发起呼叫并将音频路由到蓝牙连接的手机?还是有什么其他方式?

到目前为止,我的编码尝试在此问题中进行了描述:如何通过 Android 中的免提音频网关从 HF 通过 AG 发起呼叫?

0 投票
2 回答
8524 浏览

android - 通过与 Android 设备配对的蓝牙耳机捕获音频

我正在尝试从与 Android 设备配对的蓝牙耳机中捕获音频。

以下是相关代码:

Manifest 请求以下权限:

  • WRITE_EXTERNAL_STORAGE
  • 录制音频
  • 互联网
  • MODIFY_AUDIO_SETTINGS
  • BROADCAST_STICKY
  • 蓝牙
  • BLUETOOTH_ADMIN

每个应用程序的典型 Filtered LogCat 输出是:

  1. 初始化 BT
  2. 启动蓝牙
  3. BT可以从麦克风录音吗?真的
  4. 一切都已初始化
  5. 录音机是...
  6. 音频 SCO 状态 = 2
  7. 音频 SCO 状态 = 1
  8. 进入并开始录制
  9. 不为空
  10. 启动录制线程

当 am.startBluetoothSco(); 被调用时,我可以在 BT 设备上听到短暂的噪音,但随后该应用程序只是从 Android 设备的麦克风中获取音频,而不是 BT 的麦克风。

关于我错过/做错了什么的任何提示?

提前感谢您的关注

0 投票
3 回答
2159 浏览

android - 使用蓝牙耳机的 startVoiceRecognition 无法正常工作

我需要使用带语音识别功能的蓝牙耳机,这在 S3、S4 和三星 Grand 等设备中几乎可以正常工作。但是,当我在 Nexus 7 上尝试相同时,我得到了

startVoiceRecognition()调用方法时出错。我正在使用此SO 页面中的代码。

仅在某些设备中出现此问题的可能原因是什么?有没有办法解决这个问题?

0 投票
0 回答
3653 浏览

android - 如何从蓝牙耳机录制音频(startBluetoothSco())

我正在尝试从蓝牙耳机录制音频,startBluetoothSco() 在不同版本的 android 中的工作方式不同,从 android 4.2、4.4 和 5.0 上的蓝牙耳机录制音频。使用“诺基亚 BH-310 和 9xxPlantronics ”蓝牙耳机。

采样率 = 8000;

  1. 运行 Android 4.2 的设备仅在像这样创建 AudioRecord() 对象时才从蓝牙设备录制音频

音频源.DEFAULT

  1. 仅当像这样创建 AudioRecord() 对象时,运行 Android 4.4 的设备才会从蓝牙设备录制音频

音频源.DEFAULT

或者

音频源.MIC

  1. 仅当像这样创建 AudioRecord() 对象时,运行 Android 5.0 Lollipop 的设备才从蓝牙设备录制音频

AudioSource.VOICE_COMMUNICATION

Android 5.0 设备连接状态的 LOG

我上面用来做的完整代码在这里。

MainActivity.java

这就是我创建音频记录对象并开始录制的方式。

0 投票
0 回答
898 浏览

android - 调用 startBluetoothSco 后使用 AudioTrack 在设备上播放音频的代码流程是什么?

我正在使用 BluetoothSco 将带有 Android OS 4.1 的移动设备连接到蓝牙设备(设备类 = 1792)来路由音频(语音)。我已经成功使用 createRfcommSocketToServiceRecord 设置了 BluetoothSocket。

我的设置:

使用频率 = 8000 的 AudioRecord 和 AudioTrack,MediaRecorder.AudioSource.MIC 作为 AudioRecord 的源,AudioManager.STREAM_VOICE_CALL 用于 AudioTrack,并尝试 MODE_IN_COMMUNICATION 和 MODE_IN_CALL 用于 AudioManager 模式。

没有成功。我的设备上没有音频。

我的问题:

  1. 我应该使用 MODE_IN_COMMUNICATION 还是 MODE_IN_CALL?
  2. 我需要切换到 MODE_NORMAL 或其他模式才能在设备上播放吗?
  3. 你能推荐一个在设备上播放 SCO 音频的代码流吗?
  4. 你能指出一些工作代码来审查吗?

笔记:

  1. 设备上禁用了“媒体音频”配置文件 (A2DP) - 仅启用了“呼叫音频”配置文件 (HFP)。

很乐意分享一些代码,但鉴于现有的 SO Q&As,它可能看起来是一样的。

问候。

0 投票
1 回答
659 浏览

android - Android 音频开始缓慢通过蓝牙 sco 开始播放

我正在开发一个应用程序,它将通过蓝牙 SCO 播放 TextToSpeech 音频。连接到目标蓝牙设备(汽车音响),然后指示 TextToSpeech 引擎说话后,音频开始播放大约需要 15 秒,即使我在通过 SCO 连接和播放 TextToSpeech 之间等待几秒钟。

这是我用来通过 SCO 连接的代码:

这是我用来播放 TextToSpeech 的代码:

其他 android 应用程序(包括 VOIP 和内置电话应用程序)不会受到这种延迟的影响。我创建的等效 iOS 应用程序没有延迟。所以我知道问题不在于立体声。

任何帮助将不胜感激,谢谢