Android仿微信发送语音消息的功能及示例代码
更新时间:2017年08月26日 15:44:06 作者:try_zp_catch
这篇文章主要介绍了Android仿微信发送语音消息的功能及示例代码,需要的朋友参考下吧
微信的发送语音是有一个向上取消的,我们使用onTouchListener
来监听手势,然后做出相应的操作就行了。
直接上代码:
//语音操作对象 private MediaPlayer mPlayer = null; private MediaRecorder mRecorder = null; //语音文件保存路径 private String FileName = null; FileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/soundrecord/amrsend.amr";
定义一个ImageView,然后给它设置监听事件:
@Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: beginX = motionEvent.getX(); beginY = motionEvent.getY(); Log.e("MainActivity", "beginX:" + beginX); Log.e("MainActivity", "beginY:" + beginY); Log.e("MainActivity", "ACTION_DOWN"); mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mRecorder.setOutputFile(FileName); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { mRecorder.prepare(); } catch (IOException e) { Log.e("MainActivity", "prepare() failed" + e); } mRecorder.start(); break; case MotionEvent.ACTION_UP: finalX = motionEvent.getX(); finalY = motionEvent.getY(); Log.e("MainActivity", "finalX:" + finalX); Log.e("MainActivity", "finalY:" + finalY); Log.e("MainActivity", "ACTION_UP"); mRecorder.stop(); mRecorder.release(); mRecorder = null; if ((beginY - finalY) > 50) { Log.e("MainActivity", "执行删除"); new File(FileName).delete(); Log.e("MainActivity", "执行删除后文件是否还存在:" + new File(FileName).exists()); } break; default: break; } return true; }
然后在清单文件中加上需要的权限就行了:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
也可以在按下之后播放动画,显示正在录音,然后在抬起动作之后结束动画,这样就比较形象了。
总结
以上所述是小编给大家介绍的Android仿微信发送语音消息的功能及示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Android8.0适配前台定位服务service的示例代码
这篇文章主要介绍了Android8.0适配前台定位服务service的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-07-07Android中通过RxJava进行响应式程序设计的入门指南
响应式编程在Android中的运用是非常犀利的,比如在异常处理和调度器方面,这里我们将从生命周期等方面来讲解Android中通过RxJava进行响应式程序设计的入门指南:2016-06-06FFmpeg Principle学习open_output_file打开输出文件
这篇文章主要为大家介绍了FFmpeg Principle学习open_output_file打开输出文件示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-10-10
最新评论