2025年3月30日 星期日 甲辰(龙)年 月廿九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

9.4 使用MediaRecord录音

时间:05-31来源:作者:点击数:53

本节引言

本节是Android多媒体基本API调用的最后一节,带来的是MediaRecord的简单使用, 用法非常简单,我们写个例子来熟悉熟悉~


1.使用MediaRecord录制音频

运行结果

实现代码

布局代码:activity_main.xml

  • <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  • xmlns:tools="http://schemas.android.com/tools"
  • android:layout_width="match_parent"
  • android:layout_height="match_parent"
  • tools:context=".MainActivity">
  • <Button
  • android:id="@+id/btn_control"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:text="开始录音" />
  • </RelativeLayout>

MainActivity.java

  • public class MainActivity extends AppCompatActivity {
  • private Button btn_control;
  • private boolean isStart = false;
  • private MediaRecorder mr = null;
  • @Override
  • protected void onCreate(Bundle savedInstanceState) {
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.activity_main);
  • btn_control = (Button) findViewById(R.id.btn_control);
  • btn_control.setOnClickListener(new View.OnClickListener() {
  • @Override
  • public void onClick(View v) {
  • if(!isStart){
  • startRecord();
  • btn_control.setText("停止录制");
  • isStart = true;
  • }else{
  • stopRecord();
  • btn_control.setText("开始录制");
  • isStart = false;
  • }
  • }
  • });
  • }
  • //开始录制
  • private void startRecord(){
  • if(mr == null){
  • File dir = new File(Environment.getExternalStorageDirectory(),"sounds");
  • if(!dir.exists()){
  • dir.mkdirs();
  • }
  • File soundFile = new File(dir,System.currentTimeMillis()+".amr");
  • if(!soundFile.exists()){
  • try {
  • soundFile.createNewFile();
  • } catch (IOException e) {
  • e.printStackTrace();
  • }
  • }
  • mr = new MediaRecorder();
  • mr.setAudioSource(MediaRecorder.AudioSource.MIC); //音频输入源
  • mr.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB); //设置输出格式
  • mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB); //设置编码格式
  • mr.setOutputFile(soundFile.getAbsolutePath());
  • try {
  • mr.prepare();
  • mr.start(); //开始录制
  • } catch (IOException e) {
  • e.printStackTrace();
  • }
  • }
  • }
  • //停止录制,资源释放
  • private void stopRecord(){
  • if(mr != null){
  • mr.stop();
  • mr.release();
  • mr = null;
  • }
  • }
  • }

最后别忘了在AndroidManifest.xml中添加下述权限:

  • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  • <uses-permission android:name="android.permission.RECORD_AUDIO"/>

好的,就是这么简单~


2.本节示例代码下载

RecordDemo.zip


本节小结:

好的,本节内容非常简单,就是MediaRecorder的使用而已,大概是整套教程中最精简的一节 了吧~嘿嘿~

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门