录音Demo

xml文件

  <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="录音" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开启录音" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止录音" />

activity:

private Button button1;
    private Button button2;
private MediaRecorder mr;
    File path;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_audio);

        button1=(Button) findViewById(R.id.button1);
        button2=(Button) findViewById(R.id.button2);
    button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                File file=new File("/sdcard/audio");
                if(!file.exists()){
                    file.mkdirs();
                }

                 path=new File(file+"/YY"+new DateFormat().format("yyyyMMdd_hhmmss",
                        Calendar.getInstance(Locale.CHINA))+".amr");
                   Toast.makeText(getApplicationContext(), "正在录音,录音文件在"+path.getAbsolutePath(), Toast.LENGTH_LONG)
                   .show();

                   // 创建录音对象
                   mr = new MediaRecorder();
                   // 从麦克风源进行录音
                   mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
                   // 设置输出格式
                   mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);

                   // 设置编码格式
                   mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

                   // 设置输出文件
                   mr.setOutputFile(path.getAbsolutePath());

                   try {
                           // 创建文件
                       path.createNewFile();
                           // 准备录制
                           mr.prepare();
                           // 开始录制
                           mr.start();
                           button1.setText("录音中……");
                   } catch (IllegalStateException e) {
                           e.printStackTrace();
                   } catch (IOException e) {
                           e.printStackTrace();
                   }

            }
        });
        // 停止按钮点击事件
        button2.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                        if (mr != null) {
                                mr.stop();
                                mr.reset(); //重设
                                mr.release();
                                mr = null;
                              //  button1.setText("录音");
                                Toast.makeText(getApplicationContext(), "录音完毕", Toast.LENGTH_LONG).show();
                        }
                }
        });
}
    
时间: 2024-11-08 04:34:02

录音Demo的相关文章

ios录音Demo

<AudioToolbox/AudioToolbox.h> :这个库是C的接口,偏向于底层,主要用于在线流媒体的播放 <AVFoundation/AVFoundation.h> :提供了音频和回放的底层API,同时也负责管理音频的硬件 //需要遵循一个代理协议<AVAudioRecorderDelegate> ////  ViewController.m//  录音录频////  Created by lanou3g on 15/11/19.//  Copyright

双MIC安卓手机录音问题

最近项目中解决了噪音问题和杂音问题后,用户向我们反馈(同时我们也发现)另外一个问题.部分直播间左右耳麦音量大小不一样,也就是左右声道音量大小不一样.找了几款反馈过来的手机,分别是荣耀3X.盖世3和联想A3000.我猜想应该和降噪MIC有关. 下面以荣耀3X为测试机型对比小米2,分析一下录音的情况.测试使用RecForge Pro和自己写的一个录音demo.录音参数设置为:采样率 32000声道 Stereo音频数据 16bitspcm格式数据. 一.前半段面对前置MIC录音,后半段面对后置降噪M

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

iOS开发 非常全的三方库、插件、大牛博客等等

UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl- XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

iOS开发之资料收集

github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者

Tinsea MKS3手机麦克风简单评测

Tinsea MKS3手机麦克风简单评测 我从小就非常喜欢唱歌,虽然并不是唱的特别好,好在声音还算有磁性.于是唱歌也成为我把妹的手段之一.O(*≧▽≦)ツ 自从下了唱吧APP以后,手机录歌成为我除了游戏以外最大的兴趣了,无奈手机耳麦效果确实很差,于是开始在网上物色一只好的手机麦克风.无奈学生党money不多,在网上看了麦克风也是参差不齐. 首先关注的是唱吧的官方麦克风,不过据买了这款的高中哥们说录音效果很一般,声音浑浊,说的我不敢买了.还有一款叫屁颠虫的,看淘宝的中差评更是没了购买的欲望.后来无

Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)

下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl - XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHouseR

iOS开发 - 多媒体

音频播放 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音频的播放通常需要进行精确的控制.在iOS中播放两类音频分别使用AudioToolbox.framework和AVFoundation.framework两个框架来完成音效和音乐播放. 一.音效 AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册

iOS学习资源收集

https://github.com/Tim9Liu9/TimLiu-iOS 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.com/search 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 其他动画 网络相关 网络连接 图像获取 网络