通过MediaRecorder和MediaPlayer实现声音的录制和播放,代码比较简单,直接贴代码。xml文件里面只有四个按钮就不贴了。

UI

代码:

VoiceActivity.class

package com.zy.ione;import com.zy.media.UPlayer;
import com.zy.media.URecorder;import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;public class VoiceActivity extends Activity {private String path = null;private URecorder recorder;private UPlayer player;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.setContentView(R.layout.activity_voice);path = Environment.getExternalStorageDirectory().getAbsolutePath();  path += "/ione.pcm";  recorder = new URecorder(path);player = new UPlayer(path);//开始录音findViewById(R.id.ione_record_start_btn).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {    Toast.makeText(VoiceActivity.this, "start record", Toast.LENGTH_SHORT).show();recorder.start();}});//停止录音findViewById(R.id.ione_record_stop_btn).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Toast.makeText(VoiceActivity.this, "stop record", Toast.LENGTH_SHORT).show();recorder.stop();}});//开始播放findViewById(R.id.ione_play_start_btn).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) { Toast.makeText(VoiceActivity.this, "start play", Toast.LENGTH_SHORT).show();player.start();}});//停止播放findViewById(R.id.ione_play_stop_btn).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Toast.makeText(VoiceActivity.this, "stop play", Toast.LENGTH_SHORT).show();player.stop();}});}}

操作接口

package com.zy.media;public interface IVoiceManager {public boolean start();public boolean stop();
}

录音

package com.zy.media;import java.io.IOException;import android.media.MediaRecorder;
import android.util.Log;public class URecorder implements IVoiceManager{private final String TAG = URecorder.class.getName();private String path;private MediaRecorder mRecorder;  public URecorder(String path){this.path = path;mRecorder = new MediaRecorder();}/** 开始录音* @return boolean*/@Overridepublic boolean start() {    //设置音源为Micphone  mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);  //设置封装格式  mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);  mRecorder.setOutputFile(path);  //设置编码格式  mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);  try {  mRecorder.prepare();  } catch (IOException e) {  Log.e(TAG, "prepare() failed");  }  //录音mRecorder.start();  return false;}/** 停止录音* @return boolean*/@Overridepublic boolean stop() {mRecorder.stop();  mRecorder.release();  mRecorder = null; return false;}}

播放

package com.zy.media;import android.media.MediaPlayer;
import android.util.Log;public class UPlayer implements IVoiceManager {private final String TAG = UPlayer.class.getName();private String path;private MediaPlayer mPlayer;public UPlayer(String path){this.path = path;mPlayer = new MediaPlayer();}@Overridepublic boolean start() {try {  //设置要播放的文件mPlayer.setDataSource(path);mPlayer.prepare();//播放mPlayer.start();        }catch(Exception e){Log.e(TAG, "prepare() failed");  }return false;}@Overridepublic boolean stop() {mPlayer.stop();mPlayer.release();mPlayer = null;return false;}}

Android 录音(MediaRecorder)与播放(MediaPlayer)相关推荐

  1. android 录音 mediaRecorder

    文章目录 Android提供了两个API用于录音的实现: mediaRecorder audioReccrd 各类方法 具体使用 setAudioSource failed 异常 Android提供了 ...

  2. android录音播放并上传

    最近研究了下录音上传,各位有需要可参考下,如有不妥欢迎指出 <pre name="code" class="html">package com.ki ...

  3. Android 音视频开发(一) -- 使用AudioRecord 录制PCM(录音);AudioTrack播放音频

    前言,音视频这块,确实比较难入门,本着学习的态度,我这边也跟着 Android 音视频开发入门指南 打怪升级,留下个脚印,大家共勉. 音视频 系列文章 Android 音视频开发(一) – 使用Aud ...

  4. android录音程序,使用MediaRecorder编写Android 录音程序

    类型:音频处理大小:2.0M语言:中文 评分:3.3 标签: 立即下载 今天工作上需要做一个一边录音一边播放的功能,大致原因是有一个外部设备输入音频到我们机器,然后我们机器需要马上把音频播放出来.所以 ...

  5. Android录音与播放

    Android多媒体框架包含获取和编码多种音频格式的支持,所以你可以轻松地把音频合并到你的应用中.如果设备支持,你可以使用MediaRecorder APIs 进行录音. 本章向你展示如何写一个应用从 ...

  6. Android 录音和播放

    原文地址:Android 录音和播放 今天主要讲解一下使用MediaRecorder 实现录音,主要是参照Android官网介绍来说明. 今天讲的并不能实现一边录音一边播放,下一篇文章我再说如何解决这 ...

  7. 【Android】【录音】Android录音--AudioRecord、MediaRecorder

    Android提供了两个API用于实现录音功能:android.media.AudioRecord.android.media.MediaRecorder. 网上有很多谈论这两个类的资料.现在大致总结 ...

  8. Android录音器实验报告,Android实现录音(MediaRecorder)

    Android提供了两个API用于录音的实现:MediaRecorder 和 AudioRecord,各有优劣. 1.MediaRecorder 已经集成了录音.编码.压缩等,支持少量的录音音频格式, ...

  9. android 录音原始文件_Android 录音详解(一)—— MediaRecorder、AudioRecord、生成wav格式、边录边播...

    Android 录音详解(一)-- MediaRecorder.AudioRecord.生成wav格式.边录边播 越来越多的 APP 都用到了手机的录音功能,比如搜索.聊天.输入.K歌等... 本系列 ...

最新文章

  1. pip 升级_python的pip命令
  2. java栈 迷宫_利用栈实现迷宫的求解
  3. MPB:深大李猛组-基于PacBio SMRT三代测序的红树林沉积物真菌群落的研究
  4. MySQL:实用 SQL 语句集合
  5. CODEFORCES 484E Sign on Fence
  6. java三大范_Java深度学习系列——数据库的三大范式
  7. Winform开发框架之通用短信邮件通知模块
  8. 怎么得到自增列的下一个会插入的id
  9. php 封装JavaScript类
  10. 创建react应用程序_如何将React应用程序部署到Netlify
  11. MyBatis学习(十)--MyBatis数据操作
  12. ionic基本命令行
  13. java 查找英语单词相似度,用于单词匹配,法1
  14. php 邮件上传类阿里云邮件上传接口
  15. 日本护照持有者可以免签进入全球193个目的地,创下历史记录
  16. 如果去掉数学前后的空格_excel表格数据消除前后空格-EXCEL表格中数据后面的空格怎么去掉,一条条手工删......
  17. python 变量聚类 proc varclus_使用SAS进行简单的聚类分析讲解(转载)
  18. 计算机静音图标无法更改怎么办,电脑声音图标有红叉怎么办?教您解决方法
  19. starUML建模C++【逆向工程】
  20. php 开源程序_国内PHP开源建站程序一览

热门文章

  1. pwm一个时间单位_脉冲的单位是什么
  2. ASOP源码中单独编译preloader/lk/kernel/framework模块
  3. 机房和云计算数据中心一样吗?有什么不同?
  4. 亿级流量架构|day05-图片回显及反向代理
  5. php strrpos,PHP之mb_strrpos使用
  6. 2023年“网络安全”赛项安徽省阜阳市选拔赛任务书
  7. Rational Rose安装
  8. shiro设置url过滤,不拦截指定的url
  9. TSL/SSL 建立连接过程
  10. Docker容器搭建 Nexus3 私服