android录音声波动画,Android开发:仿微信 录音声波

最近在仿微信开发聊天界面:开发到一个有意思的小东西,简单写一写。就是录音声波这块。

首先先添加几个图片

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

添加如上三个声波图表

之后建立一个数组

private int[] images = {R.mipmap.ico_yuyinhui_1,R.mipmap.ico_yuyinhui_2,R.mipmap.ico_yuyinhui_3};

有了数组后就可以建立一个handler来刷新界面了

private final Handler mHandler = new Handler(){

public void handleMessage(android.os.Message msg) {

switch (msg.what){

case 0:

case 1:

case 2:micImage.setBackground(getResources().getDrawable(micImages[what],getResources().newTheme()));

break;

}

};

};

之后建立主要代码区

private Runnable mUpdateMicStatusTimer = new Runnable() {

public void run() {

updateMicStatus();

}

};

private int BASE = 1;

private int SPACE = 100;// 间隔取样时间

private void updateMicStatus() {

if (mMediaRecorder != null) {

double ratio = (double)mMediaRecorder.getMaxAmplitude() /BASE;

double db = 0;// 分贝

if (ratio > 1)

db = 20 * Math.log10(ratio);

uiHandler.postDelayed(mUpdateMicStatusTimer, SPACE);

//分贝在50 - 90 之间

int min = db - 50;

if(min<0){

min = 0;

}

int step = (min)/((90-50)/3);

if(step>2){

step = 2;

}

Logger.d(step+"step updateMicStatus");

uiHandler.sendEmptyMessage(step);

}

}

特别要注意的是要在测试完后移除线程

uiHandler.removeCallbacks(mUpdateMicStatusTimer);

具体layout代码我就不写了,非常简单。

如果有什么问题在下面提就好了。

效果图如下

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

Android录音组件开发实战:手把手教你实现微信同款声波动画与上滑取消 本文详细介绍了Android录音组件的开发实战,包括音频采集、实时声波动画渲染和手势交互系统的实现。通过AudioRecord配置、动态波形绘制和上滑取消等高级交互设计,帮助开发者构建类似微信的专业级录音功能。重点讲解了音频数据处理、动画同步和性能优化等关键技术点。 阅读详情

相关推荐

Android音频可视化动画:创建跳动的声音波形动画

在上面的代码中,我们在MainActivity的onCreate方法中获取WaveformView实例,并使用generateAmplitudes方法生成示例音频振幅数据。接下来,创建一个名为WaveformView的自定义View类,用于绘制音频波形动画。现在,您可以在您的MainActivity类中使用WaveformView类。这就是在Android中创建跳动的声音波形动画的方法。希望本文对您有帮助!当您运行应用程序时,您将看到显示在WaveformView上的跳动的声音波形动画。

HsvvDatabase的博客 1824

Android按下录音录音动画效果 ,自定义录音、播放动画View

Android按下录音录音动画效果 ,自定义录音、播放动画View https://download.csdn.net/download/abc2522/10327428?spm=1001.2101.3001.5697Android 麦克风录音动画 https://www.it610.com/article/1296454377019613184.htmAndroid 实现录音和监听声音大小实现话筒动画效果(可用) https://blog.csdn.net/yaochangliang159/article

chezabo6116的博客 3154

模拟微信语音聊天功能:从录音到播放

音频文件格式多种多样,常见的包括但不限于以下几种:MP3:MPEG Audio Layer III,广泛支持,压缩率高,音质损失较少。WAV:Waveform Audio File Format,无损格式,音质好,文件体积较大。AAC:Advanced Audio Coding,苹果设备广泛使用,支持多种采样率,音质较MP3更优。FLAC:Free Lossless Audio Codec,无损压缩格式,文件大小比WAV小,但仍然保持原音质量。

weixin_42298164的博客 1129

Android 实现录音和监听声音大小实现话筒动画效果

【代码】Android 实现录音和监听声音大小实现话筒动画效果。

chengzhenjia的博客 1570

Android录音的声波动画

这是一个录音的声波动画demo。MediaPlayer录音与播放,自定义View横向显示当前声音的动画,主页是根据分贝来的。

Android-WaveLineView一款性能内存友好的录音波浪动画

A memory-friendly recording wave animation一款性能内存友好的录音波浪动画

【Android】自定义录音、播放动画View,让你的录音浪起来

前言 先看效果图 嗯,然后大致就是这样,按住录音,然后有一个倒计时,最外层一个进度条,还有一个类似模拟声波的动画效果(其实中间的波浪会根据声音的大小浪起来的~) 实现思路 然后,我们适当的来分析一下这个录音动画的实现方式。这个肯定是通过自定义控件,咱们来把这个效果完完全全画出来。 大致包括以下几个点: 1. 最外层的进度条,最坑的就是一开始的一个渐变的效果 2. 然后进度条最前方

Blin 1万+

android 声波图

android 声波图 根据音频高低波形高低起伏 原来:AudioRecord

仿微信录音功能-(声波动画,上滑取消,超时截取,倒计时提醒)

序言 最近开发了一个语音输入控件,UI效果和微信的保持基本一直,除了颜色不一样。具体的功能如下 动画效果和微信一样,都是通过声音的分贝大小驱动动画的大小 如果声音过小,会进入监听模式,(一个小波浪从右到左移动) 录音的气泡会随着时间不断变大 最长支持60秒录音,在最后十秒会震动提示用户 最后十秒会有倒计时,如果超时会自动截取 支持转MP3格式 使用简单,一个回调返回语音文件的地址和语音的时长 效果 这个demo 包含了录音,播放,权限申请的所有功能。建议自己下载试一试效果。 动画效果 监听模式(声音太

SOLO的博客 9120

PostgreSQL+Citus分布式集群实战:从零搭建到性能调优

本文详细介绍了如何从零开始搭建并优化PostgreSQL+Citus分布式数据库集群。内容涵盖集群规划、源码编译安装、Citus扩展部署、节点配置、分布式表创建以及核心性能调优策略,为应对海量数据增长提供了完整的部署指南和实战解决方案。

oo7890的博客 624

机器视觉/将HIK海康面阵相机连接Halcon软件

本文简述了如何将海康面阵相机连接到Halcon软件中进行实时取图的过程。

Dahe.qu 4861

Android仿微信录音全解析:MediaRecorder、声波动画与手势交互实现

在移动端IM类应用中,语音消息的录制与发送是高频核心交互之一,而“按住说话”的录音面板看似简单,实则涉及音频采集、实时动画反馈、复杂手势判断与状态管理等多重技术栈。从Android录音基础讲起,MediaRecorder作为系统级封装方案,能够直接输出AAC编码的m4a文件,同时通过getMaxAmplitude()可获取实时振幅数据,为自定义View绘制声波动画提供数据源。而一个完整的录音交互闭环,还需要借助状态机来管理空闲、录音中、取消预备、倒计时与自动停止等状态切换,确保上滑取消、60秒超时截取等手势

weixin_33787529的博客 538

05、基于ALV表报实现复选框、全选、取消全选等功能

基于Function ALV实现复选框、全选及取消全选等功能

wo520yl1314的博客 2362

仿微信录音功能开发实战:声波动画、手势取消与文件存储全解析

在移动应用中,语音消息录制是一项高频交互能力,其背后涉及从原始音频数据采集到UI可视化、交互状态管理再到系统文件索引的完整链路。理解音频信号的基本度量——如通过RMS(均方根)计算分贝值并归一化为音量,是驱动声波动画的关键原理;AudioRecord底层API为实时获取PCM数据提供了基础,而MediaStore媒体库机制则决定了录音完成后能否被系统列表即时发现。从技术价值看,掌握这些底层概念,不仅能让开发者从容应对声波抖动平滑、手指上滑取消识别、60秒自动截取、以及“手机录音列表为空”等典型问题,还能为更

weixin_42526166的博客 148

别再为下载速度发愁了!手把手教你给qBittorrent/Transmission添加最新可用Tracker(附2024年实测地址清单)

本文提供2024年BT下载加速实战指南,详细解析Tracker工作原理与速度瓶颈,手把手教你为qBittorrent/Transmission添加最新可用Tracker,并附实测地址清单。通过优化配置和精选Tracker列表,显著提升下载速度和稳定性,解决连接延迟和peer数量限制问题。

weixin_28481133的博客 1225

智能车图像处理14-进阶篇6--坡道的判定

这篇文章主要讲述智能车图像处理中 : 如何判断坡道

taiyuezyh的博客 9205

Android开发:仿微信 录音声波

最近在仿微信开发聊天界面:开发到一个有意思的小东西,简单写一写。就是录音声波这块。 首先先添加几个图片添加如上三个声波图表 之后建立一个数组private int[] images = {R.mipmap.ico_yuyinhui_1,R.mipmap.ico_yuyinhui_2,R.mipmap.ico_yuyinhui_3};有了数组后就可以建立一个handler来刷新界面了private

s297165331的专栏 1811

裸眼3D技术发展与应用前景

这项技术利用传感器或摄像头实时监测观众的位置和视角,然后根据观众的位置信息动态调整投射的图像,确保不同位置的观众都能看到一致的3D效果。这种技术不仅可以在电影院和家庭影院中应用,还可以用于虚拟现实设备和大型展览等领域。裸眼3D呈现是一种不需要佩戴任何特殊设备(如3D眼镜或头盔)即可观看到3D效果的技术。这种技术近年来得到了快速发展,为观众带来了更加沉浸式的视觉体验。总之,裸眼3D呈现技术的发展为观众带来了更加真实、沉浸式的视觉体验。随着技术的不断进步和创新,相信未来裸眼3D将会在更多领域得到应用和推广。

学无止境 1977

Android仿微信语音聊天效果实现指南:从UI绘制到音频处理

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94960131的博客 786

RK3588开发笔记-Buildroot编译Qt5WebEngine-5.15.10

Rockchip RK3588是一款强大的多核处理器,广泛应用于边缘计算、人工智能、嵌入式系统等领域。为了在RK3588上运行自定义的Linux系统,并使用Qt5WebEngine进行Web内容渲染,Buildroot是一个非常合适的工具。本文将详细介绍如何使用Buildroot编译并配置Qt5WebEngine-5.15.10。Qt5WebEngine是Qt框架中的一个模块,它提供了一个功能强大的Web浏览器引擎,允许开发者在Qt应用程序中嵌入和显示现代网页内容。

flypig has a dream! 1154

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

鸿蒙特效教程02-微信语音录制动画

通过这个教程,我们从零开始实现了类似微信的语音录制动画效果。HarmonyOS的ArkUI布局系统状态管理(@State)触摸事件处理定时器和动画条件渲染组件生命周期处理这些技术和概念不仅适用于这个特定效果,还可以应用于各种交互设计中。希望这个教程能帮助你更好地理解HarmonyOS开发,并创建出更加精美的应用界面!

黑马苏杰豪,华为HDE 1648

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

微信录音交互实现:状态机、声波动画与手势冲突全解

在即时通讯和语音社交类App中,录音交互设计直接影响用户体验。看似简单的“按住说话”,背后涉及音频录制、实时音量可视化、手势判定与超时控制等多重事件流的协同。状态机作为一种管理复杂交互状态的有效模型,能够清晰定义录音、取消、倒计时等状态的转移关系,避免多事件并发时的逻辑混乱。声波动画则基于MediaRecorder的振幅数据,通过自定义View将音量映射为对称柱状图,实现实时反馈。手势冲突处理(如上滑取消)需要结合区域判定与位移阈值,并妥善处理列表滚动与多指触控。倒计时提醒与自动截取则进一步保障了录音时长的

weixin_28523493的博客 202

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android/iphone/windows/linux/微信声波通讯库

声波通讯让传统的各种linux设备,单片机设备等等能编程的设备与智能手机之间有了数据传输的能力,这在智能家居、医疗设备、工业应用等各个行业有了大力应用的机会。 声波通讯让电脑与手机连通:电脑一般都有音箱或者扬声器,而手机具有麦克风。这样数据通过声波就很容易的打通电脑与手机之间的通讯。比如说我们每次电脑与手机之间传输文件都是要先连接usb数据线,而且经常连不上,不要说电脑小白了,就连我是专门............

softlgh的专栏 7403

Android进阶——声波振幅显示

最近博主想做一个app,中间有一个是录音的功能。于是博主想把UI做的好看一些,想仿照微信或者QQ语音输入时,能够随着声音的大小显示声波振幅。于是查找了一些资料,现在把这个功能的Demo分享给大家,以后也会把更多的项目学习到的知识分享给大家。 其实这个功能主要是依靠MediaRecorder的getMaxAmplitude()方法来获得声音的振幅,然后依据计算公式分贝的计算公式K=20lg(Vo/

u014132820的专栏 4383
上一篇: android 水浮动的动画,Android实现支付宝蚂蚁森林水滴浮动效果
下一篇: android的窗口管理,Android 窗口管理
雷头东
博客等级 码龄6年 18粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值