分类: Android基础学习
2011-12-02 10:27 33人阅读 评论(0) 收藏 举报
MediaRecorder可以进行简单的录音,由于操作简单所以可以用来进行基本的录音。
下面提供一个简单的例子,记得在Mainfest文件中添加权限。
代码如下:
- package com.ppmeet;
- import java.io.IOException;
- import android.app.Activity;
- import android.graphics.PixelFormat;
- import android.media.MediaRecorder;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.Window;
- import android.view.WindowManager;
- import android.widget.Button;
- /**
- * class name:TestBasicAudio<BR>
- * class description:Basic Record Audio Demo<BR>
- *
- * @version 1.00 2011/12/01
- * @author CODYY)peijiangping
- */
- public class TestBasicAudio extends Activity {
- private Button button_start;
- private Button button_stop;
- private MediaRecorder recorder;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getWindow().setFormat(PixelFormat.TRANSLUCENT);// 让界面横屏
- requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉界面标题
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
- // 重新设置界面大小
- setContentView(R.layout.main);
- init();
- }
- private void init() {
- button_start = (Button) this.findViewById(R.id.start);
- button_stop = (Button) this.findViewById(R.id.stop);
- button_stop.setOnClickListener(new AudioListerner());
- button_start.setOnClickListener(new AudioListerner());
- }
- class AudioListerner implements OnClickListener {
- @Override
- public void onClick(View v) {
- if (v == button_start) {
- initializeAudio();
- }
- if (v == button_stop) {
- recorder.stop();// 停止刻录
- // recorder.reset(); // 重新启动MediaRecorder.
- recorder.release(); // 刻录完成一定要释放资源
- // recorder = null;
- }
- }
- private void initializeAudio() {
- recorder = new MediaRecorder();// new出MediaRecorder对象
- recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
- // 设置MediaRecorder的音频源为麦克风
- recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
- // 设置MediaRecorder录制的音频格式
- recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
- // 设置MediaRecorder录制音频的编码为amr.貌似android就支持amr编码。
- recorder.setOutputFile("/sdcard/peipei.amr");
- // 设置录制好的音频文件保存路径
- try {
- recorder.prepare();// 准备录制
- recorder.start();// 开始录制
- } catch (IllegalStateException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
AndroidMainfest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.ppmeet"
- android:versionCode="1"
- android:versionName="1.0" >
- <uses-sdk android:minSdkVersion="8" />
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name" >
- <activity
- android:name=".TestBasicAudio"
- android:screenOrientation="landscape" >
- <intent-filter >
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- <!-- 联网权限 -->
- <uses-permission android:name="android.permission.INTERNET" />
- <!-- 往SDCard写入数据权限 -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <!-- 录音权限 -->
- <uses-permission android:name="android.permission.RECORD_AUDIO" />
- <!-- 在SDCard中创建与删除文件权限 -->
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
- </manifest>
- 上一篇:RTMP中如何平稳的获取时间戳
-
顶
- 1
-
踩
- 0
暂无评论
- 文章搜索
- 文章分类
- Android基础学习(1)
- Android流媒体学习(0)
- 阅读排行
- Android ListView 自定义... (1172)
- android 线程中的ui问题 Han... (269)
- ActivityGroup 实现分页和自... (237)
- 关于java 的科学计算算法(前,中,后... (155)
- Android抓取手机视频数据流。 (128)
- FLV帧全面分析。研究心得。 (121)
- Flash中播放视频和音频流(rtmp协... (112)
- RTMP中如何平稳的获取时间戳 (107)
- Flash采集音频和视频发布到red5服... (93)
- 最佳视频播放器:Adobe Flash ... (75)
- 评论排行
- 推荐文章
- 最新评论
- RTMP中如何平稳的获取时间戳
haomeiling1122: 嘿嘿,谢谢,学习中,好东西~!
- ActivityGroup 实现分页和自定义标签(内有GridView的点击背景样式的改变方法)
lichangjun0746: 很不错!学习了!
- Android抓取手机视频数据流。
peijiangping1989: @talentprince:put到发送服务器的类哦。还有帧的长度不是固定的,仔细看代码。。。
- Android抓取手机视频数据流。
talentprince: 你好,你的发送线程里面是怎么做的呢 put到什么地方去?发送是帧还是固定长度发
- Android抓取手机视频数据流。
peijiangping1989: @Stephen_Chen:看我前面几篇博客。那个就是avc中的数据哦
- Android抓取手机视频数据流。
Stephen_Chen: 感谢你的代码,我想问问byte[] aa = { 0x01, 0x42, (byte) ....这串...
- Android ListView 自定义用法(ListView 实现单选功能)
yykxlgh: 不错
- android 线程中的ui问题 Handler的基本使用 关于获取动态时间在ui的问题
Ordosbxy: thank you!
- 关于java 的科学计算算法(前,中,后缀表达式的转换)——计算器制作的心得
luimangtu:
- 关于java 的科学计算算法(前,中,后缀表达式的转换)——计算器制作的心得
lvjingxian: 嘻嘻 ,写的好好笑哇 。。