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仿微信发送语音消息的功能及示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Android Flutter利用CustomPaint绘制基本图形详解
CustomPaint其实和前端的Canvas基本上是一样的,前端Canvas支持的绘制方法CustomPaint都支持,毕竟CustomPaint其实也是基于Canvas实现的。本篇我们来介绍 CustomPaint 基本图形的绘制,感兴趣的可以了解一下2022-07-07关于Android 4.4相机预览、录像花屏的问题的解决方法
这篇文章主要介绍了关于Android 4.4相机预览、录像花屏的问题的解决方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧2016-12-12
最新评论