仿微信录音功能-(声波动画,上滑取消,超时截取,倒计时提醒)
序言
最近开发了一个语音输入控件,UI效果和微信的保持基本一直,除了颜色不一样。具体的功能如下
- 动画效果和微信一样,都是通过声音的分贝大小驱动动画的大小
- 如果声音过小,会进入监听模式,(一个小波浪从右到左移动)
- 录音的气泡会随着时间不断变大
- 最长支持60秒录音,在最后十秒会震动提示用户
- 最后十秒会有倒计时,如果超时会自动截取
- 支持转MP3格式
- 使用简单,一个回调返回语音文件的地址和语音的时长
效果
这个demo 包含了录音,播放,权限申请的所有功能。建议自己下载试一试效果。
动画效果
监听模式(声音太小的时候自动进入)
其他功能
上滑取消和超时提醒
使用
布局文件中直接引用
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><androidx.recyclerview.widget.RecyclerViewandroid:layout_width="match_parent"android:id="@+id/recyclerView"android:layout_height="match_parent"android:layout_weight="1" /><RelativeLayoutandroid:id="@+id/layout_voice"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#f5f5f5"><com.example.wxsoundrecord.voice.RecordButtonandroid:id="@+id/btnAudio"android:paddingStart="140dp"android:paddingEnd="140dp"style="?android:attr/borderlessButtonStyle"android:layout_width="match_parent"android:layout_height="40dp"android:layout_margin="10dp"android:background="@drawable/dyps_shape_txt_bg"android:drawableStart="@drawable/dypc_ic_voice_press"android:gravity="center"android:text="按住说话"android:textSize="13dp"android:visibility="visible" /></RelativeLayout>
</LinearLayout>
java中 默认转换MP3 是自动开启的。
RecordButton recordButton = findViewById(R.id.btnAudio);recordButton.setUseMP3(true);//使用mp3格式recordButton.setOnFinishedRecordListener(new RecordButton.OnFinishedRecordListener() {@Overridepublic void onFinishedRecord(String audioPath, int time) {VoiceMsg msg = new VoiceMsg(audioPath, time, System.currentTimeMillis());voiceMsgList.add(msg);adapter.notifyDataSetChanged();recyclerView.scrollToPosition(voiceMsgList.size() - 1);}});
感谢
wav 转 mp3 使用的是下面这个库
AndroidAudioConverter
需要在Application中初始化
public class MyApp extends Application {@Overridepublic void onCreate() {super.onCreate();//wav转mp3工具AndroidAudioConverter.load(this, new ILoadCallback() {@Overridepublic void onSuccess() {// Great!}@Overridepublic void onFailure(Exception error) {// FFmpeg is not supported by device}});}
实现
还是挺复杂的,准备单独弄一篇博客介绍
源码
WXSoundRecord
仿微信录音功能-(声波动画,上滑取消,超时截取,倒计时提醒)相关推荐
- Android仿微信发送语音消息动态提示,支持上滑取消发送
Android仿微信发送语音消息动态提示,支持上滑取消发送 先来几张图说明一下,简单直接: 是不是看了图片就秒懂 了. 下面来分析代码实现,直接撸代码. 主页面 AudioSendActivity.j ...
- iOS开发-类似微信录音上滑取消功能
iOS开发-类似微信录音上滑取消功能 前言 效果 代码 先自定义UIButton 使用 监听上下滑动代码 前言 在社交媒体中开发中遇到需要做类似微信录音上滑取消功能,例子,虽然不是很好看,但是细节满满 ...
- uniapp小程序实现长按录音、上滑取消的与语言录入模块(CSS实现语音音阶动画效果)
这里写目录标题 语言录入模块 实现效果 HTML部分 JS部分 CSS部分 总结 语言录入模块 实现效果 HTML部分 代码如下: <template><view :class=&q ...
- 安卓仿微信录音功能实现
WeixinRecord 简介 仿安卓微信客户端录音与播放功能.其中录音功能以工具类形式封装,可以直接调用.播放功能以example形式提供解决思路,可以自己定制需要的特定功能. 功能 录音功能: 长 ...
- android com.mylhyl,Android 高仿微信朋友圈拍照上传功能
模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. photopicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...
- android 微信高仿,Android 高仿微信朋友圈拍照上传功能
模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. PhotoPicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...
- 短视频平台源码,iOS 仿微信语音输入动画
短视频平台源码,iOS 仿微信语音输入动画实现的相关代码 // // PBSpeechRecognizer.h // ParkBest // // Created by summerxx27 on 2 ...
- Android仿微信朋友圈图片上传选择器布局
标题有点绕口,直接上一个效果图,如果符合你的需求的请在往下看,避免浪费你的时间 当当当当,标红的区域就是今天我们要干的活了 ,搞起来! 思路: 对android有点了解的人都知道在列表显示中我们可以使 ...
- android 录音的格式转换,Android仿微信录音功能(录音后的raw文件转mp3文件)
现在很多时候需要用到录音,然后如果我们的App是ios和android两端的话,就要考虑录音的文件在两端都能使用,这个时候就需要适配,两端的录音文件都要是mp3文件,这样才能保证两边都能播放. 针对这 ...
最新文章
- 软考网络规划设计师论文考察要点
- dos下操作mysql数据库常用命令
- ASP.NET Core - 基于IHttpContextAccessor实现系统级别身份标识
- [Swift]LeetCode86. 分隔链表 | Partition List
- C# 或Asp.Net 将excel表格导入数据库
- day02-虚拟环境安装
- 深度学习笔记——生成模型
- Qt4_在Qt设计师中集成自定义窗口部件
- output在delete中的应用
- 计算机终止程序按钮,怎样在VisualBasic中终止计算机系统呢?
- prometheus监控redis(无metric接口)
- HDU1164 Eddy's research I(解法二)【废除!!!】
- Pytorch之模型加载/保存
- 3Idiots-2014-Kaggle 比赛源码走读
- 阅读不懂,图书之过——《大话设计模式》创作历程 (转载)
- 【国庆特辑】43份元宇宙报告
- MobSF移动安全检测框架简述
- php 2g文件,php 超大文件下载类 支持2g以上文件 支持断点续传_PHP教程 - range
- 封神台----尤里的复仇I-第四章:为了更多的权限!留言板!!
- c语言1张纸牌大小,纸牌游戏13张比大小(2最小A最大),求分析和改进
热门文章
- HDU6578 2019HDU多校训练赛第一场 1001 (dp)
- 中国工程科学院计算机院士,重磅!中国科学院和中国工程院2019新院士名单公布!50所高校新晋院士77人...
- 将一个文字的大集合按照第一个文字的首字母进行切分
- 语言模型(马尔可夫模型,n元语法)
- 【强推文章】如果你在犹豫要不要去外包公司,不妨看看这篇文章(自己深有感触)
- 数据可视化之汽车销量,截止到2022年目前中国汽车保有量是3.02亿辆
- 懂车帝新能源汽车销量分析
- Unity下载文件并显示进度
- 华为服务器2285怎么做系统,华为服务器2285进bios
- 在服务器上部署自己的h5页面用于微信内部浏览器打开