求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
Android学习多媒体:MediaRecorder 实现录音机
 

发布于2012-5-25

 

mediarecorder

mediarecorder_state_diagram: Initial 》Initialed 》DataSourceConfiged 》Prepared 》Recording 》Released 》 Error

录音界面

播放界面

开始录音(步骤)

停止录音(步骤)

播放实现(步骤)

1 检测SD卡存在,并更新SD卡中已存在的文件.

2 点击列表时,播放被点击的文件

3 播放录音文件

完整源码

JAVA源码

publicclassmediarecorder1 extendsListActivity
{
     privateButton mAudioStartBtn;
     privateButton mAudioStopBtn;
     privateFile mRecAudioFile;        // 录制的音频文件
     privateFile mRecAudioPath;        // 录制的音频文件路徑
     privateMediaRecorder mMediaRecorder;// MediaRecorder对象
     privateList<String> mMusicList = newArrayList<String>();// 录音文件列表
     privateString strTempFile = "recaudio_";// 零时文件的前缀

     @Override
     protectedvoidonCreate(Bundle savedInstanceState)
     {
         // TODO Auto-generated method stub
         super.onCreate(savedInstanceState);
         setContentView(R.layout.mymultimedia_mediarecorder1);

         mAudioStartBtn = (Button) findViewById(R.id.mediarecorder1_AudioStartBtn);
         mAudioStopBtn = (Button) findViewById(R.id.mediarecorder1_AudioStopBtn);
        
         /*按钮状态*/
         mAudioStartBtn.setEnabled(true);
         mAudioStopBtn.setEnabled(false);
        
         /* 检测是否存在SD卡*/
         if(Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
         {
             mRecAudioPath = Environment.getExternalStorageDirectory();// 得到SD卡得路径
             musicList();// 更新所有录音文件到List中
         } else
         {
             Toast.makeText(mediarecorder1.this, "没有SD卡", Toast.LENGTH_LONG).show();
         }
        
         /* 开始按钮事件监听*/
         mAudioStartBtn.setOnClickListener(newButton.OnClickListener()   
         {
             @Override
             publicvoidonClick(View arg0)
             {
                 try
                 {                   
                     /* ①Initial:实例化MediaRecorder对象*/
                     mMediaRecorder = newMediaRecorder();
                     /* ②setAudioSource/setVedioSource*/
                     mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置麦克风
                     /* ②设置输出文件的格式:THREE_GPP/MPEG-4/RAW_AMR/Default
                     * THREE_GPP(3gp格式,H263视频/ARM音频编码)、MPEG-4、RAW_AMR
(只支持音频且音频编码要求为AMR_NB)
                     * */
                     mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
                     /* ②设置音频文件的编码:AAC/AMR_NB/AMR_MB/Default */
                     mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
                     /* ②设置输出文件的路径*/                   
                     try
                     {
              &nb 

相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程

 
分享到
 
 
     


android人机界面指南
Android手机开发(一)
Android手机开发(二)
Android手机开发(三)
Android手机开发(四)
iPhone消息推送机制实现探讨
手机软件测试用例设计实践
手机客户端UI测试分析
手机软件自动化测试研究报告
更多...   


Android高级移动应用程序
Android应用开发
Android系统开发
手机软件测试
嵌入式软件测试
Android软、硬、云整合


领先IT公司 android开发平台最佳实践
北京 Android开发技术进阶
某新能源领域企业 Android开发技术
某航天公司 Android、IOS应用软件开发
阿尔卡特 Linux内核驱动
艾默生 嵌入式软件架构设计
西门子 嵌入式架构设计
更多...