android 蓝牙sco stream_voice_call,在Android上将音频路由到蓝牙耳机(非A2DP)
这个帖子可能已经很久了,但对于那些可能尝试同样事情的人来说,AudioManager文档中的一些注释可能会有用。看起来缺少的元素是startBluetoothSco()命令,但是对此通道的使用有限制。来自Android Dev网站:public void startBluetoothSco()从:API Level 8启动蓝牙SCO音频连接。需要许可:许可权。这种方法可以使用想要发送和的应用程序从
这个帖子可能已经很久了,但对于那些可能尝试同样事情的人来说,AudioManager文档中的一些注释可能会有用。看起来缺少的元素是startBluetoothSco()命令,但是对此通道的使用有限制。来自Android Dev网站:
public void startBluetoothSco()从:API Level 8启动蓝牙SCO
音频连接。
需要许可:
许可权。
这种方法可以使用
想要发送和的应用程序
从蓝牙SCO接收音频
手机不在时耳机
呼叫。
作为SCO连接建立
应用可能需要几秒钟
不应该依赖于连接
方法返回时可用
而是注册接收
意图ACTION_SCO_AUDIO_STATE_CHANGED
等待状态
SCO_AUDIO_STATE_CONNECTED。
由于无法保证连接
成功,应用程序必须等待
这个意图超时了。
完成SCO连接后
或者如果企业超时,那么
申请必须打电话
stopBluetoothSco()来清除
请求并关闭蓝牙
连接。
即使是SCO连接
成立,以下
限制适用于音频输出
流,以便它们可以路由到
SCO耳机: - 必须是流类型
STREAM_VOICE_CALL - 格式必须是
单声道 - 采样必须是16kHz或
为8kHz
以下限制适用于
输入流: - 格式必须
mono - 采样必须为8kHz
请注意手机应用程序始终
优先考虑使用
用于电话的SCO连接。如果这
手机进入时调用方法
打电话会被忽略。同样,如果
收到或发送电话时
应用程序正在使用SCO
连接,连接将是
丢失了申请而不是
通话时自动返回
结束。
另请参见stopBluetoothSco()
ACTION_SCO_AUDIO_STATE_CHANGED
请注意,我没有对此进行测试,我只是传递了我在研究类似项目时发现的一条线索。我认为Jayesh接近解决方案,上面的限制可能是阻止它工作的原因。
更多推荐
所有评论(0)