我正在从蓝牙耳机的麦克风上录制现场音频,并将其播放到手机的扬声器上。
int bufferSize = AudioRecord.getMinBufferSize(samplingRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
arec = new AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION, samplingRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
//STREAM_MUSIC - no sound
//STREAM_ALARM - beep from phone's speaker
//STREAM_RING - no sound
//STREAM_NOTIFICATION - no sound
//STREAM_SYSTEM - no sound
//STREAM_VOICE_CALL - plays back on bt headset
//STREAM_DTMF - sound from loud speaker, not very clear but works for now
atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, samplingRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize, AudioTrack.MODE_STREAM);
atrack.setPlaybackRate(samplingRate);
byte[] buffer = new byte[bufferSize];
arec.startRecording();
atrack.play();
while(isRecording) {
arec.read(buffer, 0, bufferSize);
atrack.write(buffer, 0, buffer.length);
}
audioManager.setBluetoothScoOn(true);
audioManager.startBluetoothSco();
//works for MODE_IN_COMMUNICATION - however there's a lot of echo when on speaker phone
//works fine for MODE_IN_CALL
audioManager.setMode(AudioManager.MODE_IN_CALL);
//turning speakerphone on causes a lot of disturbance
//audioManager.setSpeakerphoneOn(true);
//samplingRate = AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_VOICE_CALL);
samplingRate = 16000;
但是,即使我有setSpeakerPhoneon(false)
并将耳机插入音频插孔,音频也是从手机本身而不是耳机播放的。我如何克服这一点?把扩音器打开会产生很大的噪音。
我使用16000的采样率,因为不用耳机也能听到。当我使用本地采样率时,我显然只是听到了真正的高频噪声。我怎样才能让这种声音在耳机上播放,而不是在电话扬声器上播放?
对您来说不幸的是,由于不支持显式路由,不支持蓝牙和扬声器设置的组合,这将使您能够使用蓝牙耳机的麦克风,但使用手机的扬声器(耳机/耳机或扬声器)。考虑到许多可能的荒谬组合,我怀疑这是转向更简单API的理由。
您可以尝试调用不推荐的setRouting()函数,但是这可能会产生意想不到的副作用和/或甚至不能工作,这取决于硬件的能力以及底层子系统/驱动程序中正确管理的情况。
本文向大家介绍Android 将数据插入数据库,包括了Android 将数据插入数据库的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 我正在开发一个费用跟踪程序,在该程序中,我希望在应用程序首次启动时用一些记录填充数据库。我试图在我的启动活动中调用该方法并添加数据。但是,当我清除我的应用程序数据并第一次启动该应用程序时,会发生错误,提示没有此类列。 日志猫错误如下所示。 首次启动应用程序时,如何填充数据!只有几条记录,所以我不担心性能。 这将是一个很大的帮助! 谢谢。 数据库代码 我用来添加记录的方法 字符串值: 问
问题内容: 我一直在看这段代码已有一段时间了,但我看不出问题出在哪里。我已经阅读了整个StackOverflow,但仍然看不到我的错误在哪里。 错误在第13行中,即thats 。我尝试通过http://www.w3schools.com/php/php_mysql_insert.asp帮助自己,但对我没有太大帮助。 问题答案: 警告: 切勿将 w3schools 用于学习目的。他们的教程中有很多错
问题内容: 在我们的应用程序中,我们希望用户输入如下: 我想在单元测试中通过该部分,以便我可以恢复线程以执行其余代码。我如何从junit 写入内容? 问题答案: 你想要做的是使用的方法从。这将使您可以从junit 传递数据。
我正在寻找一种方法来播放Android设备扬声器中的音频,即使是在插入耳机的情况下。 事实上,典型的行为是,当插入耳机时,扬声器不会输出任何音频。然而,一些应用程序,例如默认的时钟应用程序(com.google.android.deskclock),即使插入耳机,也能够将音频路由到扬声器。 如何以编程方式获得此行为? 我正在寻找(至少)在Nexus 5设备上运行KitKat(Android 4.4