android 通过MediaRecorder实现简单的录音示例
发布时间 - 2026-01-10 23:16:45 点击率:次整理文档,搜刮出一个android 通过MediaRecorder实现简单的录音示例,稍微整理精简一下做下分享。

MainActivity
package com.centaur.collectvoice;
import android.media.MediaRecorder;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private final static String TAG = "collectvoice";
MediaRecorder mediaRecorder = new MediaRecorder();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* 开始按钮
* @param view
* @throws IOException
*/
public void onStart(View view) throws IOException {
Toast.makeText(this, "开始收集", Toast.LENGTH_SHORT).show();
// 第1步:设置音频来源(MIC表示麦克风)
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//第2步:设置音频输出格式(默认的输出格式)
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
//第3步:设置音频编码方式(默认的编码方式)
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
//创建一个临时的音频输出文件
// audioFile = File.createTempFile("record_", ".amr");
if (FileUtils.makeFolder("VOICE")){//一个简单的判断文件夹是不是存在 不存在就创建
String path = Environment.getExternalStorageDirectory().toString() + "/" + "VOICE/";
String filePath =path+"record_.amr";
File file = new File(filePath);
//第4步:指定音频输出文件
mediaRecorder.setOutputFile(file.getAbsolutePath());
//第5步:调用prepare方法
mediaRecorder.prepare();
//第6步:调用start方法开始录音
mediaRecorder.start();
}
}
/**
* 关闭按钮
* @param view
*/
public void onStop(View view) {
Toast.makeText(this, "停止收集", Toast.LENGTH_SHORT).show();
mediaRecorder.stop();
}
}
工具类中用到的方法
public static boolean makeFolder(String folder){
File filefolder = new File(Environment.getExternalStorageDirectory().toString() + "/" + folder);
if(!filefolder.exists()){
filefolder.mkdir();
if(filefolder.exists()){
Log.d(TAG,folder+"创建成功");
}
else {
Log.d(TAG,folder+"创建失败");
}
}
return true;
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.centaur.collectvoice.MainActivity">
<Button
android:onClick="onStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="收集声音" />
<Button
android:onClick="onStop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="停止声音" />
</LinearLayout>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# mediarecorder
# 录音
# android
# 录音实现
# android实现录音功能
# android MediaRecorder实现录屏时带录音功能
# Android编程录音工具类RecorderUtil定义与用法示例
# Android实现录音功能实现实例(MediaRecorder)
# Android使用AudioRecord实现暂停录音功能实例代码
# Android录音--AudioRecord、MediaRecorder的使用
# Android使用MediaRecorder实现录音及播放
# Android App调用MediaRecorder实现录音功能的实例
# Android音频录制MediaRecorder之简易的录音软件实现代码
# Android简单的利用MediaRecorder进行录音的实例代码
# Android使用AudioRecord实现录音功能
# 音频输出
# 不存在
# 创建一个
# 大家多多
# 类中
# 文档
# void
# protected
# Override
# onCreate
# setContentView
# super
# savedInstanceState
# final
# private
# extends
# static
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在香港免费服务器上快速搭建网站?
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
网站建设要注意的标准 促进网站用户好感度!
如何用免费手机建站系统零基础打造专业网站?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
如何快速搭建二级域名独立网站?
浅谈Javascript中的Label语句
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
JS去除重复并统计数量的实现方法
如何用腾讯建站主机快速创建免费网站?
如何在宝塔面板中创建新站点?
新三国志曹操传主线渭水交兵攻略
🚀拖拽式CMS建站能否实现高效与个性化并存?
怎么用AI帮你设计一套个性化的手机App图标?
javascript读取文本节点方法小结
微信小程序 wx.uploadFile无法上传解决办法
如何在Windows虚拟主机上快速搭建网站?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
Laravel如何实现用户密码重置功能?(完整流程代码)
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
网站建设整体流程解析,建站其实很容易!
海南网站制作公司有哪些,海口网是哪家的?
如何快速搭建高效香港服务器网站?
网站制作壁纸教程视频,电脑壁纸网站?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Python文本处理实践_日志清洗解析【指导】
如何快速配置高效服务器建站软件?
JavaScript如何实现路由_前端路由原理是什么
微信推文制作网站有哪些,怎么做微信推文,急?
如何在腾讯云服务器快速搭建个人网站?
黑客入侵网站服务器的常见手法有哪些?
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
如何用低价快速搭建高质量网站?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
如何在IIS管理器中快速创建并配置网站?
网站图片在线制作软件,怎么在图片上做链接?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
Python制作简易注册登录系统
如何在建站之星网店版论坛获取技术支持?
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
如何在局域网内绑定自建网站域名?
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制

