流水不争先,争的是滔滔不绝

Androi仿微信语音对讲基础-Android录制音频之通过Intent调用系统的录音器功能

未分类 云聊IM 1902℃

发送语音消息,现在已经成为即时通讯app中的一个标配功能。在开发中大多采用MediaRecorder类,如果有较高的要求则使用AndioRecord来实现。

其实,除了这两种方法外,也可以通过Intent调用系统的录音器功能来实现。只是这样使用起来可能不是特别的灵活。但是,在一些特殊场景下,比如需要快速测试语音播放功能,还是有点用的。

下面通过一个小实例,来学习一下:通过Intent调用系统的录音器功能,然后在录制完毕保存以后在onActivityResult中返回录制的音频的uri,然后通过MediaPlayer进行播放。

1.通过Intent调用系统的录音器

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intent, REQUEST_RECORDER);

2.在onActivityResult中获取录制的音频的uri,然后通过Mediaplayer进行播放

       
if (resultCode == RESULT_OK && REQUEST_RECORDER == requestCode){
    //获取录音文件
    Uri uri = data.getData();

    //使用MediaPlayer播放
    if (uri != null){
        if (mediaPlayer != null) {
            try {
                mediaPlayer.reset();
                mediaPlayer.setDataSource(MainActivity.this, uri);
                mediaPlayer.prepare();
            } catch (IOException e) {
                e.printStackTrace();
            }

            mediaPlayer.start();//播放
        } else {
            Toast.makeText(MainActivity.this, "没有成功创建Mediaplayer", Toast.LENGTH_SHORT).show();
        }
    }
}

3.播放完毕,进行提示

        
//播放结束之后弹出提示
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
    @Override
    public void onCompletion(MediaPlayer arg0) {
        Toast.makeText(MainActivity.this, "播放结束", Toast.LENGTH_LONG).show();
    }
});

demo下载:http://download.csdn.net/download/longwenjunjie/10103802

版权声明:部分文章、图片等内容为用户发布或互联网整理而来,仅供学习参考。如有侵犯您的版权,请联系我们,将立刻删除。
点击这里给我发消息