欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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仿微信发送语音消息的功能及示例代码,希望对大家有所帮助