Android仿微信发送语音消息的功能及示例代码
程序员文章站
2023-12-09 14:05:51
微信的发送语音是有一个向上取消的,我们使用ontouchlistener来监听手势,然后做出相应的操作就行了。
直接上代码:
//语音操作对象
private...
微信的发送语音是有一个向上取消的,我们使用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仿微信发送语音消息的功能及示例代码,希望对大家有所帮助