2017-06-22 131 views
4

我正在开发旨在使用蓝牙耳机麦克风录制语音的应用程序。我在此环境中使用Ionic 2:Ionic 2 - 使用蓝牙耳机录制

@ionic/cli-utils : 1.4.0 
Cordova CLI  : 7.0.1 
Ionic CLI  : 3.4.0 
local packages: 

@ionic/app-scripts    : 1.1.4 
@ionic/cli-plugin-cordova  : 1.4.0 
@ionic/cli-plugin-ionic-angular : 1.3.1 
Cordova Platforms    : android 6.1.2 
Ionic Framework     : ionic-angular 2.2.0 
System: 

Node  : v6.10.0 
OS   : Windows 10 
npm  : 3.10.10 

我正在使用cordova-plugin-audioinput来录制音频。我试图将配置的音频输入源类型更改为VOICE_COMMUNICATION,MIC和DEFAULT。但是,它仍在使用设备的麦克风进行录制。

在Android上,我看到使用了MediaRecorder。我试过在读取it后将音频输入源设置为VOICE_CALL,但应用程序崩溃。我发现这个link。我想知道是否有任何科尔多瓦插件来做到这一点?有没有办法使用Ionic 2录制来自蓝牙耳机麦克风的音频?

在此先感谢

+0

你好,你有没有发现这方面的任何解决方案? – Sujay

+0

你好,可惜没有。我不认为这是可能的.. – Chris

+0

我觉得这很可怕吗?你知道了吗? – koampapapa

回答

3

有用于这一目的没有已知的科尔多瓦包装。 你可以做的是直接通过AT命令来控制设备。 基本上,Android的做什么,如果你按照这个文档:

https://developer.android.com/reference/android/bluetooth/BluetoothHeadset.html

通过串行通信发送AT命令到耳机。 您可以使用https://github.com/don/BluetoothSerial从蓝牙耳机发送和读取RAW缓冲区。例如,您可以发送AT命令,该命令将启动耳机上的麦克风录制,然后从接收的缓冲区获取RAW音频,然后在其他库的帮助下将RAW数据转换为MP3。

如果你想通过蓝牙,特别是AT命令,以了解更多关于串行通信:http://www.spezial.cz/pdf/Serial_Port_Adapter_AT_Commands.pdf

+0

您推荐的此库适用于AD2P和HFP?我认为它只适用于SPP配置文件(串口porfile) – koampapapa

+0

是的你是对的,它只适用于SPP。这将取决于您的耳机是否支持SPP(构造函数可能支持多个配置文件)。但是,如果仔细观察此插件的源代码和有关蓝牙配置文件的Android文档(https://developer.android.com/guide/topics/connectivity/bluetooth.html),则您距离您所看到的不远对于。 :)你需要稍微调整一下插件,但这是AD2P/HFP配置文件中最接近的 –