js模仿微信语音播放的动画效果
设计思路: 播放时使用js的setInterval来替换png达到动画效果
当前demo语音播放使用插件BenzAMRRecorder.js
如需要用其它js插件来播放语音也很容易集成到本demo
准备素材:
css代码:
.btnPlayAmr{width:108px;height:28px;background-size:28px;font-size: 14px;line-height: 25px;border-radius:20px;cursor:pointer;
}
.pngOnRight{text-align:right;background-color: #64d74a;background-repeat: no-repeat;background-position: right;
}
.rPlay{background-image: url(../images/amrR3.png);
}
.rPlay1{background-image: url(../images/amrR1.png);
}
.rPlay2{background-image: url(../images/amrR2.png);
}
.rPlay3{background-image: url(../images/amrR3.png);
}
.pngOnLeft{text-align:left;background-color: #f6f3d5;background-repeat: no-repeat;background-position: left;
}
.lPlay{background-image: url(../images/amrL3.png);
}
.lPlay1{background-image: url(../images/amrL1.png);
}
.lPlay2{background-image: url(../images/amrL2.png);
}
.lPlay3{background-image: url(../images/amrL3.png);
}
关键js代码
function alterVoicePng(){if (!isPlaying) return;var voicePngClass = curVoicePngName + pngNum;curPlayVoiceObj.setAttribute("class", voicePngClass);pngNum++;if (pngNum > 3) pngNum = 1;
}
function startPlayVoice(playId) {isPlaying = true;pngNum = 1;curPlayVoiceId = playId;curVoicePngName = curPlayVoiceObj.className;//播放时替换pngtaskTimer1 = setInterval(alterVoicePng, 300);//播放结束时恢复pngtaskTimer2 = setTimeout(stopPlayVoice, voiceLenMap.get(playId));
}
function stopPlayVoice() {if (!isPlaying) return;isPlaying = false;clearInterval(taskTimer1);clearTimeout(taskTimer2);curPlayVoiceObj.setAttribute("class", curVoicePngName);
}
部分html
<table border="1"><thead><tr><th style="text-align:center;">序号</th><th style="text-align:center;">from</th><th style="text-align:center;">Voices</th><th style="text-align:center;">to</th></tr></thead><tr align="center"><td width="30px;">1</td><td></td><td align="right" width="300px;"><div id="voiceDiv1" onclick="jsPlayVoice(this,1)"class="btnPlayAmr pngOnRight rPlay">6.0″   </div></td><td width="50px;">ethan</td></tr><tr align="center"><td width="30px;">2</td><td width="50px;">jim</td><td align="left" width="300px;"><div id="voiceDiv2" onclick="jsPlayVoice(this,2)"class="btnPlayAmr pngOnLeft lPlay">   4.0″</div></td><td></td></tr></table>
页面展示效果:
Demo下载地址 https://download.csdn.net/download/tianbbs2008/23364672
js模仿微信语音播放的动画效果相关推荐
- js模仿微信语音播放的小功能
自己写的一个模仿微信语音播放的小功能,实现的主要功能是:点击播放,点击暂停,播放切换,,, 代码如下: <!DOCTYPE html> <html lang="en&qu ...
- php仿微信语音条,html5的audio实现高仿微信语音播放效果
前言 之前做过一个微信的项目,专家回复可以录音,然后储存成mp3格式,前台可以获取mp3,客户可以在线试听mp3录音效果,今天就简单分享一下这个效果如何实现,及实现思路和方法! 效果图 前台大体呈现效 ...
- html5的audio实现高仿微信语音播放效果
效果图 前台大体呈现效果图如下: 点击就可以播放mp3格式的录音.点击另外一个录音,当前录音停止! 思路 关于播放动画,这个很简单,我们可以用css3的逐帧动画来实现.关于逐帧动画,我之前的文章也写过 ...
- html仿微信语音播放器,原生js仿微信音频播放器
今天看个类似微信音频播放器的效果: 简单使用 使用比较简单,直接配置如下: var wx_audio = new WxAudio({ ele: ".wx-audio", title ...
- 微信语音能保存多久服务器,微信语音播放失败?可能是这几个原因导致的,看完你就懂了...
很多朋友在使用手机播放其他好友发送给自己的语音消息时,会出现"语音播放失败"的提示,不知道是什么原因导致的,本期文章就说说导致微信语音播放失败的几个原因,以及可行的解决办法. 一. ...
- android让字体左右对齐,Android 模仿微信读书文字左右对齐效果
原标题:Android 模仿微信读书文字左右对齐效果 本文作者 作者:Amter https://www.jianshu.com/p/020786e22a6f 左右对齐的文字效果,很常见,在大多数文章 ...
- Android 悬浮窗功能实现(微信语音通话悬浮窗效果实现)
目录 1.基本介绍 2.代码示例 3.实现效果及便捷工具类 4.仿微信语音通话悬浮窗效果实现 4.1 需求分析及效果展示 4.2 实现 5.最后 1.基本介绍 Android 界面绘制都是通过 Win ...
- js设置页面语音播放
js设置页面语音播放 let msg = new SpeechSynthesisUtterance("喷子");console.log(msg)//msg.rate = 4 播放语 ...
- 微信小程序的动画效果@keyframes
微信小程序的动画效果@keyframes 定义动画的格式: @keyframes 动画名称{ 阶段1{css样式} 阶段2{css样式} 阶段3{css样式} } 每个阶段用百分比表示,即从0%到1 ...
最新文章
- html修改headicon,index.html
- springboot2新版springcloud微服务,带你了解不一样的springboot2
- Day9:yield的表达式形式、面向过程编程(grep -rl 'root' /etc)
- mysql经典书籍--MySQL 必知必会
- 处理被中断的系统调用
- activemq安全机制
- C语言写个贪吃蛇游戏
- 自绘列表框控件显示略缩图----再稍微改进点点。。
- HDU - 1723 - Distribute Message
- IOS 判断设备屏幕尺寸、分辨率
- 巨牛,访问github速度加快数倍
- Binding.scala使用教程8--binding.scala结合semanticUI
- python 入门教程
- 进入显示器工厂模式的方法! 【95种品牌,维修珍藏资料】
- error: Failed dependencies: 	perl(Data::Dumper) is needed by MySQL-server-5.6.46-1.el7.x8
- happen-before原则解读
- python弹幕分析_用Python抓取bilibili弹幕并分析
- 写代码时切换insert键,用来解决光标小黑块问题
- 一百行代码爬取漫画喵
- 最长公共子序列(LCS)算法
热门文章
- Android开发之MVVM模式实践(六),2021字节跳动春招技术面试题
- Sqlserver,Mysql基础SQL语句
- 第10周:吴恩达 Andrew Ng 机器学习
- 你爱上了别人。告诉我、即使心很痛
- Luogu4156 WC2016 论战捆竹竿 KMP、同余类最短路、背包、单调队列
- 匠人与匠心:专访恩墨学院院长侯圣文
- HTML5七夕情人节表白网页制作【飘落蒲公英动画超酷炫的HTML5页面】HTML+CSS+JavaScript
- 【转载】MTK Sensor 传感器驱动及系统框架 1. 【非常好】【mtk sensor 驱动框架】hwmsen_dev.c
- 结构光照明荧光显微镜(一)
- vue 调取本地wps_vue中使用ckeditor,支持wps,word,网页粘贴