Android 录音(MediaRecorder)与播放(MediaPlayer)
通过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)相关推荐
- android 录音 mediaRecorder
文章目录 Android提供了两个API用于录音的实现: mediaRecorder audioReccrd 各类方法 具体使用 setAudioSource failed 异常 Android提供了 ...
- android录音播放并上传
最近研究了下录音上传,各位有需要可参考下,如有不妥欢迎指出 <pre name="code" class="html">package com.ki ...
- Android 音视频开发(一) -- 使用AudioRecord 录制PCM(录音);AudioTrack播放音频
前言,音视频这块,确实比较难入门,本着学习的态度,我这边也跟着 Android 音视频开发入门指南 打怪升级,留下个脚印,大家共勉. 音视频 系列文章 Android 音视频开发(一) – 使用Aud ...
- android录音程序,使用MediaRecorder编写Android 录音程序
类型:音频处理大小:2.0M语言:中文 评分:3.3 标签: 立即下载 今天工作上需要做一个一边录音一边播放的功能,大致原因是有一个外部设备输入音频到我们机器,然后我们机器需要马上把音频播放出来.所以 ...
- Android录音与播放
Android多媒体框架包含获取和编码多种音频格式的支持,所以你可以轻松地把音频合并到你的应用中.如果设备支持,你可以使用MediaRecorder APIs 进行录音. 本章向你展示如何写一个应用从 ...
- Android 录音和播放
原文地址:Android 录音和播放 今天主要讲解一下使用MediaRecorder 实现录音,主要是参照Android官网介绍来说明. 今天讲的并不能实现一边录音一边播放,下一篇文章我再说如何解决这 ...
- 【Android】【录音】Android录音--AudioRecord、MediaRecorder
Android提供了两个API用于实现录音功能:android.media.AudioRecord.android.media.MediaRecorder. 网上有很多谈论这两个类的资料.现在大致总结 ...
- Android录音器实验报告,Android实现录音(MediaRecorder)
Android提供了两个API用于录音的实现:MediaRecorder 和 AudioRecord,各有优劣. 1.MediaRecorder 已经集成了录音.编码.压缩等,支持少量的录音音频格式, ...
- android 录音原始文件_Android 录音详解(一)—— MediaRecorder、AudioRecord、生成wav格式、边录边播...
Android 录音详解(一)-- MediaRecorder.AudioRecord.生成wav格式.边录边播 越来越多的 APP 都用到了手机的录音功能,比如搜索.聊天.输入.K歌等... 本系列 ...
最新文章
- pip 升级_python的pip命令
- java栈 迷宫_利用栈实现迷宫的求解
- MPB:深大李猛组-基于PacBio SMRT三代测序的红树林沉积物真菌群落的研究
- MySQL:实用 SQL 语句集合
- CODEFORCES 484E Sign on Fence
- java三大范_Java深度学习系列——数据库的三大范式
- Winform开发框架之通用短信邮件通知模块
- 怎么得到自增列的下一个会插入的id
- php 封装JavaScript类
- 创建react应用程序_如何将React应用程序部署到Netlify
- MyBatis学习(十)--MyBatis数据操作
- ionic基本命令行
- java 查找英语单词相似度,用于单词匹配,法1
- php 邮件上传类阿里云邮件上传接口
- 日本护照持有者可以免签进入全球193个目的地,创下历史记录
- 如果去掉数学前后的空格_excel表格数据消除前后空格-EXCEL表格中数据后面的空格怎么去掉,一条条手工删......
- python 变量聚类 proc varclus_使用SAS进行简单的聚类分析讲解(转载)
- 计算机静音图标无法更改怎么办,电脑声音图标有红叉怎么办?教您解决方法
- starUML建模C++【逆向工程】
- php 开源程序_国内PHP开源建站程序一览
热门文章
- pwm一个时间单位_脉冲的单位是什么
- ASOP源码中单独编译preloader/lk/kernel/framework模块
- 机房和云计算数据中心一样吗?有什么不同?
- 亿级流量架构|day05-图片回显及反向代理
- php strrpos,PHP之mb_strrpos使用
- 2023年“网络安全”赛项安徽省阜阳市选拔赛任务书
- Rational Rose安装
- shiro设置url过滤,不拦截指定的url
- TSL/SSL 建立连接过程
- Docker容器搭建 Nexus3 私服