`

android > 手机MIC,听筒音量监听

 
阅读更多
package shake.mft;

import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.util.Log;
 
public class RecordThread extends Thread {
	private static final String TAG = "PhoneStatReceiver";
	
	
    private AudioRecord ar;
    private int bs;
    private static int SAMPLE_RATE_IN_HZ = 8000;
    private boolean isRun = false;
 
    public RecordThread() {
        super();
        bs = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ,
                AudioFormat.CHANNEL_CONFIGURATION_MONO,
                AudioFormat.ENCODING_PCM_16BIT);
        ar = new AudioRecord(MediaRecorder.AudioSource.MIC, SAMPLE_RATE_IN_HZ,
                AudioFormat.CHANNEL_CONFIGURATION_MONO,
                AudioFormat.ENCODING_PCM_16BIT, bs);
    }
 
    public void run() {	
        super.run();
        ar.startRecording();
                // 用于读取的 buffer
        byte[] buffer = new byte[bs];
        isRun = true;
        while (isRun) {
            int r = ar.read(buffer, 0, bs);
            int v = 0;
                        // 将 buffer 内容取出,进行平方和运算
            for (int i = 0; i < buffer.length; i++) {
                // 这里没有做运算的优化,为了更加清晰的展示代码
                v += buffer[i] * buffer[i];
            }
            // 平方和除以数据总长度,得到音量大小。可以获取白噪声值,然后对实际采样进行标准化。
            // 如果想利用这个数值进行操作,建议用 sendMessage 将其抛出,在 Handler 里进行处理。
            Log.d("spl", String.valueOf(v / (float) r));
        }
        ar.stop();
    }
 
    public void pause() {
                // 在调用本线程的 Activity 的 onPause 里调用,以便 Activity 暂停时释放麦克风
        isRun = false;
        android.os.Process.killProcess(android.os.Process.myPid());
        Log.d(TAG, "recordThread.pause");
    }
 
    public void start() {
                // 在调用本线程的 Activity 的 onResume 里调用,以便 Activity 恢复后继续获取麦克风输入音量
        if (!isRun) {
            super.start();
        }
    }
}

 

然后是操作他

 

RecordThread rtd = new RecordThread();

rtd.start()

//

rtd.pause();

 

 

 

分享到:
评论

相关推荐

    android录音实时监控音量大小

    Android系统并没有直接提供获取实时录音音量的方法,但可以通过监听音频流的音频数据来间接获取。一种常见的方法是利用AudioRecord类,它是直接访问音频硬件的接口。首先创建AudioRecord实例,设置音频源、采样率、...

    android9系统mic麦克风增益和降噪

    android9系统mic麦克风增益和降噪

    Android 各种音量的获取

    ### Android各种音量的获取详解 #### 一、引言 在Android开发过程中,对于音频控制的需求非常普遍,比如在开发电话应用时调整通话音量、在音乐播放器中调节播放音量等。本文将详细介绍如何通过编程方式获取Android...

    Android 获取麦克风的音量(分贝)

    为了监听麦克风的音量,我们首先需要实例化`MediaRecorder`,然后设置音频源为`MediaRecorder.AudioSource.MIC`: ```java MediaRecorder mediaRecorder = new MediaRecorder(); mediaRecorder.setAudioSource...

    Android高通MIC增益调试

    Android高通MIC增益调试 ,麦克风模拟输入增益控制的属性为ADCx Volume

    Android AudioRecord和MediaRecorder录音并实现了实时获取音量大小

    实时获取音量大小在`MediaRecorder`中没有直接的接口支持,但可以通过监听音频流的音量变化来间接实现。可以创建一个服务或线程定期读取音频流的状态,比如使用`AudioManager`的`getStreamVolume()`方法,不过这种...

    c#获取麦克风音量 百分比显示

    在C#编程环境中,获取麦克风音量并将其转换为百分比显示是一项常见的音频处理任务。这主要应用于实时音量监控、语音识别或者音频播放控制等场景。下面将详细介绍如何实现这一功能,并提供相关的知识点。 首先,我们...

    安卓手机麦克风测试App

    【安卓手机麦克风测试App】是一款专为检测和评估安卓设备上麦克风性能的应用程序。该应用设计的主要目的是帮助用户了解手机麦克风的工作状态和寿命,确保在进行语音通话、录音或者使用各种需要麦克风输入的App时,...

    android获取音量分贝值

    在Android平台上,获取音量分贝值涉及到音频输入、音频处理和传感器的使用。下面将详细解释这个过程,以及如何实现这一功能。 首先,我们需要理解音量分贝(dB)是一个表示声音强度的单位,它基于人耳对声音感知的...

    手机音频流程(包括mic的偏置电路及其原理、MTK平台音频调试和对mtk软件对声音的控制以及mic&receiver电路各元器件作用的讲解等)

    本文主要探讨了手机音频中的几个核心知识点,包括mic的偏置电路及其原理、MTK平台的音频调试、软件对声音的控制,以及mic和receiver电路的元器件作用。 首先,让我们深入了解一下mic,即传声器。传声器是一种将声音...

    Android例子源码利用麦克风去监听频率的变化实现吹一吹功能

    在Android平台上,开发一款应用程序利用麦克风监听频率变化来实现“吹一吹”功能,是一项有趣且具有挑战性的任务。这种功能通常应用于游戏或者互动应用中,用户通过吹气动作触发特定的操作。以下是对这个技术实现的...

    该软件利用Android手机的Mic采集用户的语音并编码,通过WiFi将语音编码传到一台带声音输出的_beemic.zip

    该软件利用Android手机的Mic采集用户的语音并编码,通过WiFi将语音编码传到一台带声音输出的_beemic

    HD Audio 开启MIC调控补丁关于HD声卡使用语音聊天软件MIC音量无法调节的解决方法

    在电脑使用过程中,有时会遇到使用高清音频(HD Audio)声卡进行语音聊天时麦克风(MIC)音量无法调节的问题。这个问题主要出现在使用REALTEK声卡芯片的主板上,尤其是在诸如QQ这样的语音聊天软件中。为了解决这一困扰...

    Android-Mic-v20.apk

    Android-Mic-v20.apk 当手机和PC通过无线直连或者局域网无线(WIFI)连接时,此工具能使手机变成PC机的无线话筒,不用流量,很有趣。缺点就是二者距离近了有啸叫回响。

    Android中默认系统的声音/大小修改和配置详解

    Android系统中声音管理系统主要负责声音的输入和输出、声音的控制和路由等功能,包括主音量调节、声音焦点控制、声音外设的检测和状态管理、声音源输入和输出的策略管理、音效的播放、音轨设置和播放、录音设置和...

    Android蓝牙无线对讲demo(手机连接蓝牙耳机后可通过蓝牙耳机实时对讲,音量可调)

    这个"Android蓝牙无线对讲demo"项目旨在提供一个基础框架,让用户能够通过已连接的蓝牙耳机进行实时语音通信,并且可以调整音量。下面将详细介绍相关的知识点。 首先,Android中的蓝牙功能主要由`BluetoothAdapter`...

    录音时根据音量大小实现心电图的效果

    - Android中的音频源有多种,如`MediaRecorder.AudioSource.MIC`用于从麦克风获取音频输入。这是实现心电图效果的关键,因为我们需要实时监听到的声音来驱动图形的变化。 2. **音量数据获取**: - 在Android中,...

    副麦回环测试代码

    1. **权限获取**:首先,由于涉及到音频录制和播放,需要在AndroidManifest.xml中声明相应的权限,如`&lt;uses-permission android:name="android.permission.RECORD_AUDIO" /&gt;`。 2. **音频管理器初始化**:使用`...

    Android 监听录音权限拒绝

    综上所述,Android监听录音权限拒绝涉及到多个环节,包括权限请求、录音API的使用、文件存储以及权限被拒绝后的处理策略。开发者在实现这些功能时,需充分考虑用户体验和隐私保护,以确保应用的合规性和可用性。

    MIC_mic算法_MIC_python_相关性分析

    本篇文章将详细讲解"MIC_mic算法_MIC_python_相关性分析"这一主题,以及如何利用Python实现MIC(Maximal Information Coefficient)算法进行相关性分析。 **一、MIC算法** Maximal Information Coefficient (MIC) ...

Global site tag (gtag.js) - Google Analytics