当前位置: 首页 > 面试题库 >

在Android中录制音频时如何调整麦克风灵敏度

公良鸿畅
2023-03-14
问题内容

我正在开发一个录音应用程序。在其中,我有一个Seekbar来更改输入语音增益。我找不到任何调整输入语音增益的方法

我正在AudioRecord上课来录制声音。

 recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
            RECORDER_SAMPLERATE, RECORDER_CHANNELS,
            RECORDER_AUDIO_ENCODING, bufferSize);

    recorder.startRecording();

我已经在Google
Play商店中
看到了使用此功能的应用程序。


问题答案:

据我了解,您不需要任何自动调整,只需从用户界面进行手动调整即可。Android中没有内置功能,因此您必须手动修改数据。

假设您使用read(short [] audioData,int offsetInShorts,int
sizeInShorts)
读取流。因此,您应该执行以下操作:

float gain = getGain(); // taken from the UI control, perhaps in range from 0.0 to 2.0
int numRead = read(audioData, 0, SIZE);
if (numRead > 0) {
    for (int i = 0; i < numRead; ++i) {
        audioData[i] = (short)Math.min((int)(audioData[i] * gain), (int)Short.MAX_VALUE);
    }
}

Math.min如果gain大于1,则用于防止溢出。



 类似资料:
  • 在遵循类似的教程之后,我正在使用MediaRecorder类用相机录制视频 http://androidcookbook.com/Recipe.seam;jsessionid=40151FCD26222877E151C3EEFB406EED?recipeId=1375 我希望在录音时能够使麦克风静音/取消静音。怎么可能呢? 我正在开始设置音频源 但是如果我想在某个时候录制没有声音的音乐呢?

  • 我正在尝试通过camera2 api录制我自己,同时观看视频。我想录制视频配乐,用麦克风音源录制表面。 我如何创建两个音轨,第一个为呈现给用户的视频,第二个为mediaRecorder AudioSource.mic

  • 对不起我的英语不好:( 我开始我的android应用程序项目,这个应用程序录制麦克风,如果我点击开始录制按钮,应用程序获取麦克风并将其写入文件,当我点击停止时,一个文件保存到SD卡中。 项目代码: 输出文件 开始录音 停止录制 播放声音录制文件 我想录下声音并将其放入变量ByteArray中,在不将音频文件保存到SD卡的情况下播放 我有一个像我想要的项目,但它是用actionscript 3编写的

  • 我设法通过电话麦克风录制声音,并在电话扬声器或耳机上听到它。但是当耳机有麦克风时,通常是免提的,默认情况下它使用免提麦克风录制声音。我需要以某种方式静音免提麦克风和使用电话麦克风。在Android系统中可能吗? 我还没找到任何答案。在android开发人员中,Stackoverflow一事无成。提前感谢!

  • 我正在编写一个核心Java应用程序(JDK 11),它应该录制音频和视频。经过广泛的试验 然而,录制高质量的音频仍然是一个问题。我设法将录音作为短[]样本并对其进行编码,但由于某种原因,它们被TargetDataLine在振幅127处切断。我可以通过简单地将它们乘以一个因子来增加它们的编码,但是超过127的任何记录细节都会被噪声丢失。也就是说,我可以插入麦克风,并在事实发生后将其放大(大声或正常的

  • 我正在使用语音识别应用程序。蓝牙耳机成功连接到我的android设备后,我想在内置麦克风和耳机麦克风之间自由切换音频输入,如何做到?