发送语音消息,现在已经成为即时通讯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
版权声明:部分文章、图片等内容为用户发布或互联网整理而来,仅供学习参考。如有侵犯您的版权,请联系我们,将立刻删除。