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仿微信发送语音消息的功能及示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Kotlin lambda表达式入门指南

    Kotlin lambda表达式入门指南

    在kotlin当中,Lambda表达式是最高等级的,Lambda表达式可以理解为一种匿名函数,是一种高效的类似于函数式编程的表达式,本文介绍Kotlin lambda表达式入门指南,感兴趣的朋友一起看看吧
    2024-03-03
  • Android利用Canvas标点画线并加入位移动画(1)

    Android利用Canvas标点画线并加入位移动画(1)

    这篇文章主要为大家详细介绍了Android利用Canvas标点画线并加入位移动画的第一篇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • Android实现动态曲线绘制

    Android实现动态曲线绘制

    这篇文章主要为大家详细介绍了Android实现动态曲线绘制,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Android Flutter利用CustomPaint绘制基本图形详解

    Android Flutter利用CustomPaint绘制基本图形详解

    CustomPaint其实和前端的Canvas基本上是一样的,前端Canvas支持的绘制方法CustomPaint都支持,毕竟CustomPaint其实也是基于Canvas实现的。本篇我们来介绍 CustomPaint 基本图形的绘制,感兴趣的可以了解一下
    2022-07-07
  • 关于Android 4.4相机预览、录像花屏的问题的解决方法

    关于Android 4.4相机预览、录像花屏的问题的解决方法

    这篇文章主要介绍了关于Android 4.4相机预览、录像花屏的问题的解决方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2016-12-12
  • Android开发中PopupWindow用法实例分析

    Android开发中PopupWindow用法实例分析

    这篇文章主要介绍了Android开发中PopupWindow用法,结合实例形式分析了PopupWindow弹出窗口效果的使用技巧,需要的朋友可以参考下
    2016-02-02
  • Android 裁剪人脸类的实例代码

    Android 裁剪人脸类的实例代码

    这篇文章主要介绍了Android 裁剪人脸类的实例代码,需要的朋友可以参考下
    2018-08-08
  • Android自定义控件实现验证码倒计时

    Android自定义控件实现验证码倒计时

    这篇文章主要为大家详细介绍了Android自定义控件实现验证码倒计时的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android音频编辑之音频转换PCM与WAV

    Android音频编辑之音频转换PCM与WAV

    这篇文章主要为大家详细介绍了Android音频编辑之音频转换PCM与WAV,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Android开场动画类完整实现代码

    Android开场动画类完整实现代码

    这篇文章主要介绍了Android开场动画类完整实现代码,是非常实用的功能,需要的朋友可以参考下
    2014-07-07

最新评论