Android音频录制—MediaRecorder

android开发获取手机麦克风设备信息 之前为了测试蓝牙耳机的麦克,想从蓝牙耳机的麦克录音。尝试发现三星、小米自带的录音机并不能从蓝牙录音。看了网上一篇文章,提供了一个特定的录音APP,才支持开启蓝牙录音功能。非常令人疑惑。想到现在的手机,有不只一个麦克风,是否能开发一个可选择录音源的录音APP呢?看了这篇文章,介绍了几种音频开发模式。问了ChatGPT指定麦克风录音的方法其实这段代码,并不可用。其中AudioRecord的原型是这样的。 阅读详情

MediaRecorder (基于文件录音)
集成了录音,编码,压缩等,支持少量的音频格式文件。
优点:封装度很高,操作简单
缺点:无法实现实时处理音频,输出的音频格式少。

首先来看看 MediaRecorder 的生命周期:

这里写图片描述

从生命周期中可以看出,录制音频的基本步骤如下:

MediaRecorder mMediaRecorder= new MediaRecorder();
// 音频输入源
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
// 输出格式
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
// 编码格式
mMediaRecorder.setAudioEncoder(MediaRecorder.OutputFormat.DEFAULT);
// 设置录制音频的输出存放文件
mMediaRecorder.setOutputFile(audioFile.getAbsolutePath());
// 准备
mMediaRecorder.prepare();
// 开始录音
mMediaRecorder.start();
......
// 停止录音
mMediaRecorder.stop();
// 重置录音器
mMediaRecorder.reset();
// 释放录音器资源
mMediaRecorder.release();

将以上整个流程拆分成业务逻辑,主要为:

  1. 初始化
  2. 开始录音
  3. 停止录音
  4. 重置录音器
  5. 释放录音器资源

下面我们来看看具体代码实现:

1.初始化

public void initRecorder(File audioFile){
    if(mMediaRecorder==null){
        mMediaRecorder = new MediaRecorder();
    }
        mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
        mMediaRecorder.setAudioEncoder(MediaRecorder.OutputFormat.DEFAULT);
        try {
            if(!audioFile.exists()) audioFile.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mMediaRecorder.setOutputFile(audioFile.getAbsolutePath());
        mMediaRecorder.prepare();
}

2.开始录音

mMediaRecorder.start();

3.停止录音

mMediaRecorder.stop();

4.重置录音器

mMediaRecorder.reset();

5.释放录音器资源

if(mMediaRecorder!=null){
      mMediaRecorder.release();
      mMediaRecorder = null;
}

使用情况如下:
(1)一次录制完成
1 —> 2 —> 3 —>5
(2)录制完不满意,想重新录制,此时文件还是同一文件,控制 audioFile 参数即可
1 —> 2 —> 3 —>4 —> 1 —> 2 —>3 —> 5
(3)录制完继续录制第二个,此时文件是另一个新文件,控制 audioFile 参数即可
1 —> 2 —> 3 —>4 —> 1 —> 2 —>3 —> 5

其他情况可自行处理。

安卓使用MediaRecorder(1)录制音频的详细使用 引言 使用 MediaRecorder 的步骤 常见问题及解决思路 无法访问存储卡目录 录制的音频文件没有声音 录制过程中出现异常 MediaRecorder无法正常启动 录制的音质或者画质很差 录制的文件无法播放 结语 阅读详情

相关推荐

26、从头学Android之多媒体--使用MediaRecorder录制音频

MediaRecoder 内部类或接口: 常用的方法       方法名称       描述       public void setAudioEncoder (int audio_encoder)       设置刻录的音频编码,其值可以通过MediaRecoder内部类的MediaRecorder.AudioEncoder的几个

90worker 1万+

MediaRecorder.AudioSource音频来源参数

**MediaRecorder.AudioSource.MIC参数说明 其中第一个参数就是选择录音源的,其可选参数如下: 1.MediaRecorder.AudioSource.CAMCORDER 设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风 2.MediaRecorder.AudioSource.DEFAULT 默认音频源 3.MediaRecorder.AudioSource.MIC 设定录音来源为主麦克风。 4.MediaRecorder.AudioSourc

weixin_45942645的博客 3148

Android音频开发之使用MediaRecorder录制

本文主要是记录Android端音频开发 Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord MediaRecorder 可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3,3gp等)并存成文件 google API : https://developer.android.com/reference/androi

I_do_can的博客 1827

Android多媒体五:MediaRecorder录制音频

Android多媒体五:MediaRecorder录制音频 Android手机一般都提供麦克风的硬件,而Android系统可以利用该硬件来录制音频。 为了在Android应用中录制音频,Android提供了MediaRecorder类,使用MediaRecorder录制音频的过程很简单,步骤如下: 1:创建MediaRecorder对象; 2:调用MediaRecorder对象的setAudioS...

zk的博客 886

【Android笔记84】Android之使用MediaRecorder录制音频

MediaRecorder是Android提供的一个专门用于录制音频和视频的类,它能够捕获各种编码格式的音频、视频。在使用MediaRecorder录制音视频的时候,确保android系统有相应的设备,例如:麦克风、相机等设备(注意:录制视频的时候,需要调用相机设备)。注意:Android Studio模拟器上无法录制音频,所以最好通过真机测试。

✅ Java 开发工程师 684

Android音频录制实战:使用MediaRecorder

在移动开发的世界里,音频录制功能是许多应用的核心需求之一。Android平台提供了MediaRecorder类,它是一个方便的API,允许开发者在应用中轻松实现音频录制。MediaRecorder类封装了复杂的音频捕获和编码过程,使得音频录制操作对开发者来说相对简单。MediaRecorder通过一系列简单的方法调用来设置音频源、格式、输出文件路径等,使得开发者可以快速上手并集成到自己的应用中。MediaRecorder类是Android平台用于录制音频和视频的强大工具。

weixin_36204513的博客 1540

MediaRecorder.AudioSource音频参数说明

版权声明:本文为博主原创文章,http://blog.csdn.net/m0_37039192 https://blog.csdn.net/m0_37039192/article/details/77776844 使用UVC格式带麦克外接摄像头,mAudioRecord音源参数设置MediaRecorder.AudioSource.MIC:音源会使用外设麦克 MediaRec...

knhnh的博客 4893

Android音频录制基础教程:MediaRecorder Demo1

在Android开发中,音频和视频的录制是一项常见的功能。MediaRecorder API提供了一种简单的方法,允许开发者快速实现录制功能。它是一个高级的API,屏蔽了底层的复杂性,允许用户通过几个简单的步骤就能开始录制音频或视频。MediaRecorder API可以处理音频源的采集、编码、输出格式的设置,以及录制过程的控制和资源管理。这使得它成为开发录音功能的首选。

weixin_35903223的博客 1307

Android-MediaRecorder之setAudioSource

  上一篇文章介绍了怎么通过MediaRecorderlu录制音频,详见(https://blog.csdn.net/cheriyou_/article/details/105544086 在创建MediaRecorder之后第一步就是设置AudioSource,那么audiosource具体是做什么用的?下面我们一步步分析。 1. 首先看看setAudioSource的过程 stat...

cheriyou_的博客 4320

掌握Android MediaRecorder:音频和视频录制技术指南

本文还有配套的精品资源,点击获取 简介:MediaRecorder是Android中用于录制音频和视频的强大工具,提供了一系列API以简化多媒体数据捕获过程。本篇指南将详细介绍MediaRecorder的使用方法,包括初始化、配置输入输出源、选择编解码器、指定输出文件路径以及启动和停止录制的步骤。此外,还包括音频和视频录制的示例代码和重要事项提醒,帮助开发者在Android...

weixin_42430341的博客 2736

Android音频录制与播放实战:一文掌握MediaRecorder使用

MediaRecorder类在Android开发中扮演着录音功能实现的核心角色。它提供了一组API,允许开发者轻松地控制音频的录制过程,包括开始录制、停止录制以及设置录音参数等。此外,MediaRecorder可以有效地管理音频数据流,将录制的音频保存为文件。音频录制与播放是数字媒体处理中最基础的功能,它涉及到数据的采集、处理和呈现。在本章节中,我们将详细介绍音频录制和播放的基本概念、流程以及它们之间的关联性。

weixin_36299472的博客 1549

Android 多媒体框架之音频录制 MediaRecorder 和 AudioRecorder

Android 多媒体框架针对音频录制提供了两种方法:MediaRecorder和AudioRecord。AudioRecord和MediaRecorder两种都可以录制音频,MediaRecorder已实现大量的封装,操作起来更加简单,而AudioRecord使用起来更加灵活,能实现更多的功能。

特立独行的博客 1万+

王爽《汇编语言》课程设计2(不涉及软盘版本)

assume cs:code,ds:data,ss:stack stack segment db 128 dup (0) stack ends data segment db 256 dup (0) data ends code segment start: mov ax,stack mov ss,ax mov sp,128 ...

weixin_41944412的博客 1178

Android MediaRecorder录制音频

今天介绍一下在Android中怎么录制音频,在Android中使用MediaRecorder来录制音频,步骤:   1、创建MediaRecorder对象。   2、调用MediaRecorder对象的setAudioSource()方法设置声音来源,一般传入MediaRecorder.AudioSource.MIC参数指定录制来在麦克风的声音。   3、调用MediaRecorder对象的set

潘洪金的博客 1084

Sony DPT RP1/CP1破解攻略

前言 自己有一台Sony DPT CP1和一台kindle,两个都已经用了很多年。直到最近发现微信读书上经常可以找到一些免费而且不错的书,所以就萌生了在两台机器上使用微信读书的想法。kindle比较容易实现,直接打开内置浏览器,进入微信读书网页版就行了,而Sony的电纸书则只能通过破解+安装微信读书的方式实现。大概弄了两三个小时吧,也遇到了一些问题,所以这里记录一下整个过程,希望能方便后来的使用者。 首先感谢HappyZ, osc_t5nbj8ds。前者是提供公开破解的方法的大神,后者则是解决了我遇到的问题

weixin_43467572的博客 1万+

PCL:SAC-IA+ICP配准

【代码】SAC-IA+ICP配准。

m0_71596228的博客 1018

Android之MediaRecorder录制音频

使用MediaRecorder录制音频 手机一般都提供麦克风硬件,而Android系统可以利用该硬件来录制音频了。 ——使用MediaRecorder录制音频的步骤:  1)创建MediaRecorder对象  2)调用MediaRecorder对象的setAudioSource()方法设置声音来源,一般传入MediaRecorder.AudioSource.MIC参数指定录制来自麦克风的

重心开始,重新开始 1856

R语言数据可视化:绘制世界地图的两种方案

本文介绍了两种使用R语言绘制世界地图的方案:包含边界边框和不包含边界边框。无论您选择哪种方案,使用ggplot2包和相关的地理数据包,我们可以轻松地绘制出漂亮的世界地图。R语言提供了丰富的包和函数,使我们能够轻松地绘制世界地图,并根据需求添加边界边框。在本文中,我将介绍两种绘制世界地图的方案:一种包含边界边框,一种不包含边界边框。在上述代码中,我们使用了与方案一相同的数据准备和地图绘制步骤,但省略了添加边界边框的代码。函数的调用,我们可以绘制不包含边界边框的世界地图。方案二:绘制不包含边界边框的世界地图。

CodeMaven的博客 2225

安卓多媒体API——音频录制MediaRecorder

序 三分钟前了视频录制,实际上视频录制不是已经包括音频录制了吗? https://blog.csdn.net/nishigesb123/article/details/89507576 但如果单独的想要录制一段语音该如何操作呢?(遮住摄像头,误) 比如像微信一样,录制一段指定时长的语音,这篇文章就记录了安卓中的音频录制。 归档到多媒体。 MediaRecorder 概述 andro...

旧日灯塔 653

FineReport 动态列切换统计维度

目标: 自己选择统计维度进行数据的汇总统计数据集参数实现动态列。

Davina_yu的博客 1053

Veritas NetBackup8.1.1客户端安装

1.在客户机打开安装包运行Browser 2.选择NetBackup Client Software Installation 3.下一步 4.接受,下一步 5.我选择自定义安装,下一步 6.我选择安装到D盘 7.默认下一步 8.使用域管理账户 9.输入服务器安装了服务端的那一台名称 10.输入服务端生成的令牌,选择“I recognize the fingerprint for this host.Proceed with the certificate deploymen”下一步

万物皆可学 2万+

Android音视频开发:MediaRecorder录制音频

MediaRecorder录制音频

m0_60259116的博客 1052

OpenClaw 与十几款国产 “龙虾” 智能体深度对比

详解介绍OpenClaw和各种类似国产“龙虾”智能体工具深度对比

program哲学 2349

Android:使用MediaRecorder录制音频

Android:使用MediaRecorder录制音频标签(空格分隔): android no 陈小默(不足之处恳请批评指正)Android使用MediaRecorder录制音频 实战演练 MediaRecorder类是Android提供的用来录制音频的组件,其使用步骤基本如下1: 创建MediaRecorder对象 调用MediaRecorder对象的setAudioSou

陈小默的博客 3197

AUTOSAR-WdgM篇

Wdg通常有两种:一种是芯片内部自带的片内看门狗,另一种是在芯片外部通过SPI这种接口连接的片外看门狗。MCAL只负责常用的有MCU内部看门狗,片内看门狗的特点是Wdg模块是直接访问相关硬件寄存器。内部看门狗依赖于系统时钟片外看门狗属于设备抽象层负责,通常需要使用MCAL提供的其他模块(比如SPI,DIO,PWM等)来访问/控制外扩看门狗芯片。这种不能直接访问硬件寄存器。Wdg Driver:有三种模式slow mode,fast mode ,off mode。

qq_329563867的博客 5830

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android 开发 MediaRecorder音频录制

Android 开发 MediaRecorder音频录制 前言   MediaRecorder类是Android sdk提供的一个专门用于音视频录制,一般利用手机麦克风采集音频和摄像头采集图像.这个类是属于简单的音频录制类,录制音频简单容易但是对音频流的控制也比较...

weixin_30781775的博客 431

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 仿Win8图标按下回弹效果
下一篇: Android音频播放—MediaPlayer
yypccc
博客等级 码龄12年 42粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值