android 蓝牙耳机 sco,Android:通过Sco蓝牙耳机播放声音
在过去的几天里,我一直试图从我的Android手机上播放我的sco蓝牙耳机上的任何声音 . 我这个项目的最终目标是最终制作一个车库门开启器,但首先我需要能够通过耳机播放声音 .
这是我正在使用的当前代码的基础:
==Manifest==
==Code==
audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.startBluetoothSco();
audioManager.setBluetoothScoOn(true);
short[] soundData = new short [8000*20];
for (int iii = 0; iii < 20*8000; iii++) {
soundData[iii] = 32767;
iii++;
soundData[iii] = -32768;
}
audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
8000, AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT, soundData.length
* Short.SIZE, AudioTrack.MODE_STATIC);
audioTrack.write(soundData, 0, soundData.length);
audioTrack.play();
在我运行之前,我将蓝牙耳机与手机配对并连接好 . 我通过调用我的语音邮件验证了它的工作原理 . 然而,当我运行我的代码时,任何地方都没有声音 .
以下是不同代码行的效果:
当我刚刚运行我的应用时:
audioManager.setMode(AudioManager.MODE_IN_CALL);
无论我做什么,这条线都会让我的所有声音都停止工作,因此它通常会被注释掉 .
audioManager.startBluetoothSco();
audioManager.setBluetoothScoOn(true);
这两条线让声音停止从前置扬声器出来,使我的耳机发出咔嗒声,嘶嘶声就像它已经打开但是没有输出 .
AudioManager.STREAM_VOICE_CALL
这是我调用AudioTrack构造函数的一部分,但它有很大的不同 . 由于设置为STREAM_VOICE_CALL,声音从前置扬声器发出,如果我将其设置为STREAM_MUSIC,则声音会从后置扬声器发出 .
当我在通话期间打开我的应用时:
audioManager.setMode(AudioManager.MODE_IN_CALL);
在通话期间,此行无效,因为已设置MODE_IN_CALL . 但不同的是,我的声音与电话混合在一起,而通常它根本不播放 .
audioManager.startBluetoothSco();
audioManager.setBluetoothScoOn(true);
这些,与对应的一半,控制音频来自哪里 . 如果我把它关掉,我的声音和电话都来自前置扬声器,打开后,电话就会来自我的耳机而我的声音也会丢失 .
至于为什么我的代码不起作用,老实说我不知道 . 我相信我已经完成了使用startBluetoothSco()的清单 .
Even if a SCO connection is established, the following restrictions
apply on audio output streams so that they can be routed to SCO headset:
- the stream type must be STREAM_VOICE_CALL - the format must be mono -
the sampling must be 16kHz or 8kHz
那么,有没有人知道我做错了什么?曾经有一次我设法让我的声音通过耳机播放,但当我忘记停止()我的AudioTrack时,它只是一个短音,所以我不得不认为这是一个小故障 .
android 蓝牙耳机 sco,Android:通过Sco蓝牙耳机播放声音相关推荐
- android 连接已配对蓝牙耳机,连接/配对蓝牙耳机和Android
我想创建一个简单的程序,扫描蓝牙耳机(我正在测试一个PS3耳机),然后连接到它.我正在使用bluetooth chat program example中的代码.但是我无法将它连接到任何东西.当它到达c ...
- android华为手机开启蓝牙耳机,华为手机如何连接蓝牙耳机? 华为手机连接蓝牙耳机方法教程介绍!...
我们现在在用手机的时候经常会用到耳机,听歌接电话看视频都离不开耳机,但是有的时候如果觉得耳机插来插去很麻烦就可以尝试用蓝牙耳机,那么知道华为手机怎么连接蓝牙耳机吗?具体的连接方法是怎么样的呢?下面小编 ...
- Android学习之Android历史
一个优点:无论学习什么之前都要了解一下它的历史. Android读音:android 英 [ ˈændrɔɪd ] 美 [ ˈænˌdrɔɪd ],中文音译:"安叫伊德",或者&q ...
- Android发展史(Android各版本特性-知识篇)
文章整理了Android 0.x,Android 1.x, Android 2.x,Android 3.x,Android 4.x,Android 5.x,Android 6.x相关更新的内容 文章主 ...
- Android8.1MTK平台链接蓝牙耳机通话,默认使用蓝牙耳机进行通话
Android8.1MTK平台链接蓝牙耳机通话,默认使用蓝牙耳机进行通话,在没有蓝牙耳机状态下是外放模式. /vendor/mediatek/proprietary/packages/apps/Dia ...
- android 声音池,Android使用SoundPool实现播放音效
如果在程序应用中(比如:游戏的音效等)需要播放密集.短促的音效,这时就使用SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就10个音效,以后在程序中 ...
- android layout组件,Android UI学习 - Linear Layout, RelativeLayout
1.一些常用的公共属性介绍 1) layout_width -宽 fill_parent: 宽度和父元素相同,wrap_content: 宽度随本身的内容所调整,或者指定 px值来设置宽 2) lay ...
- android:layout_gravity 和 android:gravity 的区别
gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. android:layout_gravity 和 android:gravity 的区别 从名字上可以看到,android:gr ...
- Android横向伸缩,Android 实现伸缩布局效果示例代码
最近项目实现下面的图示的效果,本来想用listview+gridview实现,但是貌似挺麻烦的于是就用flowlayout 来addview实现添加伸缩的效果,实现也比较简单. mainActivit ...
最新文章
- MySQL管理之日志详解
- Java基础之重写与重载深入解析
- SOFA 源码分析 — 连接管理器
- LeetCode 1409. 查询带键的排列(map模拟)
- SpringMVC源码阅读(一)
- Android 架构优化~MVP 架构改造
- matlab fspeical,MATLAB数字图像处理.doc
- ubuntu安装linux deepin,Ubuntu 13.04安装Linux Deepin特色软件
- mysql建表语句外键_mysql里面用语句怎么建立表外键的命令
- matlab空间直线拟合,使用matlab进行空间拟合
- android preference-headers 字体颜色,如何修改CheckBoxPreference 中title ,summary字体的颜色...
- 【图像处理】python实现对图像进行二值化处理
- 《张宇考研数学基础30讲》思维导图-第1讲 高等数学预备知识
- SQL去重的三种方法汇总​
- R语言之 as.formula()
- html5手机密码修改,HTML5 Canvas简简单单实现手机九宫格手势密码解锁
- 从大数据挖掘大智慧,华为创造AI时代速度新高度
- 深度学习常规概念(持续更新)
- Django 快速搭建博客 第十一节(文章阅读量统计,自动生成文章摘要)
- 2023超好用的Mac清理优化工具CleanMyMacX