前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发(17) 录音和播放音频

Android开发(17) 录音和播放音频

作者头像
张云飞Vir
发布2020-03-16 15:09:55
1.5K0
发布2020-03-16 15:09:55
举报
文章被收录于专栏:写代码和思考写代码和思考

需求

使用android手机录音

了解MediaRecorder

代码语言:javascript
复制
 mRecorder = new MediaRecorder();

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(newFileName());
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
    mRecorder.prepare();
} catch (IOException e) {
    Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();

步骤

  1. 设定声音来源。这里指定为 麦克风
  2. 指定输出格式 。
  3. 指定输出文件。
  4. 指定音频编码格式。
  5. 预备。
  6. 启动录音。

代码

配合启动录音的过程,就会有终止录音的过程,代码:

mRecorder.stop();

mRecorder.release(); mRecorder = null; 结束,并释放资源。

播放

录音完成后,总得要听听吧。我们看播放的过程:

代码语言:javascript
复制
mPlayer = new MediaPlayer();

try {
    mPlayer.setDataSource(fileName);
    mPlayer.prepare();
    mPlayer.start();
} catch (IOException e) {
    Log.e(LOG_TAG, "prepare() failed");
}

终止播放呢

代码语言:javascript
复制
 mPlayer.release();
 mPlayer = null;

完整代码

代码语言:javascript
复制
class SoundRecorder {   
MediaRecorder mRecorder;

    boolean isRecording;

    public void startRecording() {
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mRecorder.setOutputFile(newFileName());
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        try {
            mRecorder.prepare();
        } catch (IOException e) {
            Log.e(LOG_TAG, "prepare() failed");
        }
        mRecorder.start();

    }

    public void stopRecording() {
        mRecorder.stop();
        mRecorder.release();
        mRecorder = null;
    }

    public String newFileName() {
        String mFileName = Environment.getExternalStorageDirectory()
                .getAbsolutePath();

        String s = new SimpleDateFormat("yyyy-MM-dd hhmmss")
                .format(new Date());
        return mFileName += "/rcd_" + s + ".3gp";
    }
}


 

  public class SoundPlayer {  
    MediaPlayer mPlayer;


    public void startPlaying(String fileName) {
        mPlayer = new MediaPlayer();
        try {
            mPlayer.setDataSource(fileName);
            mPlayer.prepare();
            mPlayer.start();
        } catch (IOException e) {
            Log.e(LOG_TAG, "prepare() failed");
        }
    }

    public void stopPlaying() {
        mPlayer.release();
        mPlayer = null;
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • 了解MediaRecorder
  • 步骤
  • 代码
  • 播放
    • 终止播放呢
    • 完整代码
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档