Android录音相关代码

来源:互联网 发布:java集合类常用方法 编辑:程序博客网 时间:2024/05/16 08:42

权限申请:

    <uses-permission android:name="android.permission.RECORD_AUDIO"/><!--录音-->    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--写数据-->

录音代码 [录音文件名不能包含英文冒号 会文件损坏]

    private void startRecording() {        try {            recorder = new MediaRecorder();// new出MediaRecorder对象            recorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 设置MediaRecorder的音频源为麦克风            recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);// 设置MediaRecorder录制的音频格式            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); // 设置MediaRecorder录制音频的编码            String recorderPath = Environment.getExternalStorageDirectory() + "/录音文件.mp3";//录音文件名不能包含英文冒号 会文件损坏            recorder.setOutputFile(recorderPath);// 设置文件保存路径            recorder.prepare();// 准备录制            recorder.start();// 开始录制        } catch (Exception e) {            e.printStackTrace();        }    }
停止录音

    private void stopRecording() {        if (recorder != null) {            recorder.stop();//停止捕获            recorder.release();//释放资源            recorder = null;        }    }
获取音频文件时长

    private int getDuration(String path) {        try {            MediaPlayer player = new MediaPlayer();            player.setDataSource(path);            player.prepare();//缓冲            int duration = player.getDuration() / 1000;            player.release();//释放资源            player = null;            return duration;        } catch (Exception e) {            return 0;        }    }
播放音频

    private void playRecoding(String path){        try {            MediaPlayer player = new MediaPlayer();            player.setDataSource(path);            player.prepare();//缓冲            player.start();//开始或恢复播放            player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {                @Override                public void onCompletion(MediaPlayer arg0) {                    //播放结束事件                }            });        } catch (IOException e) {            e.printStackTrace();            //文件损坏        }    }
暂停播放

player.pause();//暂停
停止播放

player.stop();//停止player.release();//释放资源player = null;

获取当前播放时长

player.getCurrentPosition()
获取总时长

player.getDuration()















0 0