Android录音工具类

     以下工具类都是经过实战开发验证都是可以直接复制使用的。

     录音工具类介绍:

     录音工具类主要平时用来开发语音聊天的,在微信和QQ上该工具类都是常用的,因为语音聊天。

     使用硬件一般都要开权限,别忘了。这里还需要搭配 FileUtil(点击) 使用,为了方便才这么封装的

import android.media.MediaRecorder;
import android.util.Log;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 录音工具
 */
public class RecorderUtil {

    private static final String TAG = "RecorderUtil";

    private String mFileName = null;
    private MediaRecorder mRecorder = null;
    private long startTime;
    private long timeInterval;
    private boolean isRecording;

    public RecorderUtil(){
        mFileName = <span style="color:#ff0000;">FileUtil</span>.getCacheFilePath("tempAudio");
    }

    /**
     * 开始录音
     */
    public void startRecording() {
        if (mFileName == null) return;
        if (isRecording){
            mRecorder.release();
            mRecorder = null;
        }
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        mRecorder.setOutputFile(mFileName);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        startTime = System.currentTimeMillis();
        try {
            mRecorder.prepare();
            mRecorder.start();
            isRecording = true;
        } catch (Exception e){
            Log.e(TAG, "prepare() failed");
        }

    }


    /**
     * 停止录音
     */
    public void stopRecording() {
        if (mFileName == null) return;
        timeInterval = System.currentTimeMillis() - startTime;
        try{
            if (timeInterval>1000){
                mRecorder.stop();
            }
            mRecorder.release();
            mRecorder = null;
            isRecording =false;
        }catch (Exception e){
            Log.e(TAG, "release() failed");
        }

    }

    /**
     * 取消语音
     */
    public synchronized void cancelRecording() {

        if (mRecorder != null) {
            try {
                mRecorder.release();
                mRecorder = null;
            } catch (Exception e) {
                e.printStackTrace();
            }
            File file = new File(mFileName);
            file.deleteOnExit();
        }

        isRecording =false;
    }

    /**
     * 获取录音文件
     */
    public byte[] getDate() {
        if (mFileName == null) return null;
        try{
            return readFile(new File(mFileName));
        }catch (IOException e){
            Log.e(TAG, "read file error" + e);
            return null;
        }
    }

    /**
     * 获取录音文件地址
     */
    public String getFilePath(){
        return mFileName;
    }


    /**
     * 获取录音时长,单位秒
     */
    public long getTimeInterval() {
        return timeInterval/1000;
    }


    /**
     * 将文件转化为byte[]
     *
     * @param file 输入文件
     */
    private static byte[] readFile(File file) throws IOException {
        // Open file
        RandomAccessFile f = new RandomAccessFile(file, "r");
        try {
            // Get and check length
            long longlength = f.length();
            int length = (int) longlength;
            if (length != longlength)
                throw new IOException("File size >= 2 GB");
            // Read file and return data
            byte[] data = new byte[length];
            f.readFully(data);
            return data;
        } finally {
            f.close();
        }
    }



}
</span>

使用步骤:

1,首先private RecorderUtil recorder = new RecorderUtil(); 实例化一下
2,开始录音recorder.startRecording();
3,录音完成后停止录音recorder.stopRecording();
4,当然如果录音开始之后想取消语音发送,类似于微信上滑取消语音发送,解决方案滑动监听判断确定取消发送,就不要将消息发出去并且还要调用recorder.cancelRecording(); //取消语音释放资源 即可

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简易录音机是一款基于Android平台的实战项目,其主要功能是通过手机的麦克风录制音频,并保存到手机的存储空间中。该项目的开发过程中需要掌握Android的基础知识和相关开发工具的使用。 在实现简易录音机的功能之前,首先需要搭建Android开发环境,包括安装Android Studio开发工具和配置相关的SDK。 开发过程中需要使用到Android的相关API,如MediaRecorder类来录制音频,AudioManager类来控制音频的播放和停止。同时,应该要注意权限的设置,例如获取录音权限和读写存储权限。 实现简易录音机的核心功能包括录制音频、播放音频和保存音频。在录制音频功能中,需要设置录制的音频来源和保存的文件格式,然后通过MediaRecorder类实现录制功能。在播放音频功能中,需要通过AudioManager类来控制音频的播放和停止,并且可以设置音量大小。在保存音频功能中,需要设置保存的文件路径和文件名,然后将录制的音频保存到指定路径。 除了核心功能外,还可以对简易录音机进行功能扩展,例如添加暂停、继续录音功能,实现录音的暂停和继续录制。还可以添加音频剪辑功能,实现对录制的音频进行剪辑和编辑。 总而言之,android实战项目-简易录音机是一个基于Android平台开发的项目,通过掌握Android的相关开发知识和技术,可以实现录制、播放和保存音频等功能,并可以对其进行进一步的功能扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值