微信的发送语音是有一个向上取消的,我们使用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;
}
然后在清单文件中加上需要的权限就行了:
也可以在按下之后播放动画,显示正在录音,然后在抬起动作之后结束动画,这样就比较形象了。
总结
以上所述是小编给大家介绍的android仿微信发送语音消息的功能及示例代码,希望对大家有所帮助