欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android 通过MediaRecorder实现简单的录音示例

程序员文章站 2023-12-15 08:24:04
整理文档,搜刮出一个android 通过mediarecorder实现简单的录音示例,稍微整理精简一下做下分享。 mainactivity package...

整理文档,搜刮出一个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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:

下一篇: