- 浏览: 249314 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (303)
- c (31)
- c++ (16)
- java (18)
- c# (1)
- python (3)
- java web (6)
- oracle (7)
- sqlserver (2)
- mysql (2)
- android (24)
- android系统 (15)
- android多媒体部分 (15)
- android游戏 (12)
- linux (26)
- javaScript (1)
- ajax (1)
- node JS (2)
- html (5)
- apache (3)
- jboss (1)
- weblogic (0)
- 通信协议 (10)
- 云计算 (1)
- 分布式 (5)
- ejb (1)
- webservice (5)
- 设计模式 (16)
- JNI (6)
- swing (13)
- 版本控制 (1)
- UML (1)
- xml (4)
- spring (5)
- hibernate (5)
- struts1 (3)
- struts2 (4)
- ibatis (0)
- tomcat (2)
- 心得体会 (1)
- css (1)
- 嵌入式 (41)
- arm体系结构 (10)
/**
* 自定义捕获音频
*
* @time 下午12:58:03
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
@SuppressWarnings("unused")
public class CustomRecorderActivity extends Activity implements OnCompletionListener, OnClickListener {
private Button btn_finish, btn_play, btn_start_record, btn_stop_record;
private TextView txt_status;
private MediaRecorder mediaRecorder;
private File audioFile;
private MediaPlayer player;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_recoder);
findView();
}
/**
* 实例化控件
*/
private void findView() {
btn_start_record = (Button) this.findViewById(R.id.btn_start_recording);
btn_stop_record = (Button) this.findViewById(R.id.btn_stop_recording);
btn_play = (Button) this.findViewById(R.id.btn_paly_record);
btn_finish = (Button) this.findViewById(R.id.btn_finish);
txt_status = (TextView) this.findViewById(R.id.txt_status);
txt_status.setText("Ready");
btn_start_record.setOnClickListener(this);
btn_stop_record.setOnClickListener(this);
btn_play.setOnClickListener(this);
btn_finish.setOnClickListener(this);
btn_play.setEnabled(false);
btn_stop_record.setEnabled(false);
}
@Override
public void onClick(View v) {
if (v == btn_start_record) {
mediaRecorder = new MediaRecorder();
// 设置输入信号源
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
// 设置输出格式
/**
* 常见格式:
*
* THREE_GPP
*
* MPEG_4
*
* RAW_AMR
*
*/
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
// 设置解码格式
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
// 创建目录
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Andoroid/data/cn.yue.mrdemo.CustomRecorderActivity/files/");
file.mkdirs();
try {
audioFile = File.createTempFile("recording", ".3gp", file);
} catch (IOException e) {
e.printStackTrace();
}
// 设置输出文件的路径
mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
try {
mediaRecorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
Log.i("tag", "error: " + e.toString());
} catch (IOException e) {
e.printStackTrace();
Log.i("tag", "error: " + e.toString());
}
mediaRecorder.start();
txt_status.setText("Recording");
btn_play.setEnabled(false);
btn_stop_record.setEnabled(true);
btn_start_record.setEnabled(false);
} else if (v == btn_stop_record) {
// 停止录音释放资源
mediaRecorder.stop();
mediaRecorder.release();
// 初始化播放器
player = new MediaPlayer();
player.setOnCompletionListener(this);
// 设置播放器数据源
try {
player.setDataSource(audioFile.getAbsolutePath());
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
player.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
txt_status.setText("Ready to play");
btn_play.setEnabled(true);
btn_stop_record.setEnabled(false);
btn_start_record.setEnabled(true);
} else if (v == btn_play) {
player.start();
txt_status.setText("Playing");
btn_play.setEnabled(false);
btn_start_record.setEnabled(false);
btn_stop_record.setEnabled(false);
} else if (v == btn_finish) {
// 退出程序
finish();
}
}
@Override
public void onCompletion(MediaPlayer mp) {
btn_start_record.setEnabled(true);
btn_stop_record.setEnabled(false);
btn_play.setEnabled(true);
txt_status.setText("Ready");
}
/**
* 其他常用方法
*
*/
private void otherMathod() {
// 最大录制文件的大小
mediaRecorder.setMaxFileSize(10);
// 录制最长时间
mediaRecorder.setMaxDuration(1);
}
/**
* 将音频插入mediaStore
*/
private void insertMediaStore() {
// 添加元数据
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.TITLE, "this is not music");
contentValues.put(MediaStore.MediaColumns.DATE_ADDED, System.currentTimeMillis());
contentValues.put(MediaStore.MediaColumns.DATA, audioFile.getAbsolutePath());
Uri uri = getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, contentValues);
}
发表评论
-
android多媒体学习笔记一
2012-09-04 10:47 6961 使用内置的camera应用程序捕获图像 /*** ... -
android多媒体学习笔记二
2012-09-04 10:53 778实现SurfaceHolder.Callback ,P ... -
android多媒体学习笔记三___图像合成
2012-09-05 11:36 594/** * 图像合成 * * @time 下午06:21 ... -
android多媒体部分学习笔记四___ Matrix
2012-09-05 11:40 688/*** 图像的缩放和旋转 Matrix** 1 0 0 x= ... -
android多媒体部分学习笔记五----audio
2012-09-08 16:08 681/*** 打开内置音乐播放器*/private void ge ... -
android多媒体部分学习笔记六----音频录制 mediaRecorder
2012-09-08 16:12 637/** * * 使用意图捕获音频 * * @time ... -
android多媒体部分学习笔记八------音频录制 mediaRecorder
2012-09-08 16:14 733/** * 原始音频的播放和录制 * * audio ... -
android 多媒体部分学习笔记九----数字音频合成
2012-09-09 12:43 802/** * 数字音频合成 * * @time 下午12: ... -
android 多媒体部分学习笔记十 可视化频率(频谱)
2012-09-09 23:43 3180/** * 可视化频率 * * @time 下午12 ... -
android 多媒体部分学习笔记十--简单视频播放
2012-09-10 17:53 725/** * 简单播放 * * @time 下午05:15 ... -
android 多媒体部分学习笔记十二----mediaplay自定义播放器
2012-09-10 22:31 1605/** * * 自定义播放器 * * @time 下午 ... -
android 多媒体部分学习笔记十三----mediaStore 检索视频
2012-09-12 00:12 982/** * mediaStore检索视频 * * @ti ... -
android 多媒体部分学习十四---网络视频播放(http/rtsp)
2012-09-12 14:36 1813/** * 网络视频播放 * * openCore * ... -
android 多媒体部分学习笔记十五-----视频录制
2012-09-12 15:02 715/** * 调用系统视频录制 * * @time 下午0 ...
相关推荐
为了在Android应用中录制音频,Android提供了MediaRecorder类,使用MediaRecorder录制音频的过程很简单,步骤如下: Step1:创建MediaRecorder对象; Step2:调用MediaRecorder对象的setAudioSource()方法设置声音...
Android应用使用MediaRecorder类录制音频的例子。
android下实现用mediarecorder录制视频,保存在本地,并通过socket发送
Android应用使用MediaRecorder类录制视频的例子代码
资源里面有个JAVA文件,导入那个类,根据文档描述的去调用那个类,来实现在android上录制wav格式的录音
Android MediaRecorder 添加一个系统服务后台自动录视频,该服务能自动循环录取视频,可分多个视频文件录制,当空间不足时,会先删除一个最早录制到视频后在循环录制视频
Android使用AudioRecord录制PCM音频、PCM转AAC、使用MediaRecorder直接录制AAC编码音频
使用MediaRecorder实现视频录制,以实现的功能包括:录制开始、录制暂停和计时,播放功能暂时没有,以后如果有机会补上。注意除了在AndroidManifest.xml文件中申请权限外,还需要手动开启存储和相机权限,否则真机...
http://blog.csdn.net/AmazingUU/article/details/51817872
Android安卓经典设计例程源代码-MediaRecorder.rar
Android MediaRecorder 添加一个系统服务后台自动录视频
Android利用MediaRecorder录音
Android中使用MediaRecorder进行录像详解(视频录制)_IT168文库.pdf 文档的类型是pdf的。不能复制。
android录制视频音频存储于sd卡并点击播放实例,使用MediaRecorder录制视频和音频实例,以列表形式显示并点击播放
Android开发中MediaRecorder语音录制播放
Android提供了MediaRecorder这一个类来实现视频和音频的录制。 由官方配图可知,MediaRecorder用于录制视频时需要调用一系列的API来设置和录制相关的配置,而且调用方法的顺序是固定的,必须按照这个顺序进行...
Android 使用MediaRecorder录像源码
例子引用isoviewer-1.0-RC-27.jar库,实现MediaRecorder录制视频的暂停与继续录制 ,demo中使用的是竖屏(4:3)录制,解决了竖屏时预览横向显示,同时,录制成功之后,写了一个SurfaceView进行播放。
Android录制通用mp3格式音频文件,觉得好用给好评哦
android录制视频的例子,我自己写的,完整代码,我测试过N多次可以录出视频来.并且视频效果还不错哦,网上很多这种例子但是大部分都是导入运行会有错,根本用不了