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

如何在Android上对麦克风进行采样而不进行记录以获得实时幅度/电平?

须峰
2023-03-14
问题内容

我试图像这样在Android上获取麦克风的振幅水平:

MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

Timer timer = new Timer();
timer.scheduleAtFixedRate(new RecorderTask(recorder), 0, 1000);

private class RecorderTask extends TimerTask {
    private MediaRecorder recorder;

    public RecorderTask(MediaRecorder recorder) {
        this.recorder = recorder;
    }

    public void run() {
        Log.v("MicInfoService", "amplitude: " + recorder.getMaxAmplitude());
    }
}

不幸的是,这总是一直返回0。

看来要执行此操作,我必须真正开始录制。那是对的吗?

如果是这样,我是否需要记录500毫秒,获取振幅,停止记录并重复?

最后,我必须记录到文件吗?我不需要保存此音频文件,自上次调用当前现场麦克风输入以来,我是否只能获取当前幅度或最高幅度而不进行记录?

任何帮助表示赞赏,谢谢。


问题答案:

是的,您必须先调用recorder.start(),并且一定不要忘记最后也要调用recorder.stop()!

有关示例应用程序,请参见http://code.google.com/p/android-
labs/source/browse/trunk/NoiseAlert/src/com/google/android/noisealert/
,您可能需要看一下SoundMeter。
java和NoiseAlert.java



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

  • 问题内容: 我正在开发一个录音应用程序。在其中,我有一个Seekbar来更改输入语音增益。我找不到任何调整输入语音增益的方法。 我正在上课来录制声音。 我已经在Google Play商店中 看到了使用此功能的应用程序。 问题答案: 据我了解,您不需要任何自动调整,只需从用户界面进行手动调整即可。Android中没有内置功能,因此您必须手动修改数据。 假设您使用read(short [] audio

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

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

  • 本文向大家介绍pytorch进行上采样的种类实例,包括了pytorch进行上采样的种类实例的使用技巧和注意事项,需要的朋友参考一下 1、其中再语义分割比较常用的上采样: 其实现方法为: 另一种上采样的方法是,参考代码:segnet_pytorch: 测试例子: 其输出为: 以上这篇pytorch进行上采样的种类实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 您如何深度克隆Javascript对象? 我知道有很多基于类似的框架的功能,但是我不想使用类似的框架。 创建深度克隆的最优雅或最有效的方法是什么。 我们确实关心诸如克隆数组之类的边缘情况。不打破原型链,处理自我参考。 我们不在乎是否支持DOM对象的复制,因为存在该原因。 正如我主要想在使用V8引擎的ES5功能中使用深度克隆一样。 [编辑] 在有人建议我之前,先通过原型继承对象创建副本与