前言

之前做过一个微信的项目,专家回复可以录音,然后储存成mp3格式,前台可以获取mp3,客户可以在线试听mp3录音效果,今天就简单分享一下这个效果如何实现,及实现思路和方法!

效果图

前台大体呈现效果图如下:

点击就可以播放mp3格式的录音。点击另外一个录音,当前录音停止!

思路

关于播放动画,这个很简单,我们可以用css3的逐帧动画来实现。关于逐帧动画,我之前的文章也写过:http://www.haorooms.com/post/zhuzhen_dh

图片如下:

除了动画之外,剩下的就是js对audio的控制了。

html5 audio

关于html5 audio标签,有很多属性,大家可以搜索一下,例如preload、autoplay、loop、controls等等。让其隐藏,我们可以添加一个隐藏参数,代码如下:

这样,这个audio 就可以隐藏显示,接下来我们就可以用js对其进行操作控制了。

audio常用方法

addTextTrack() 向音频/视频添加新的文本轨道

canPlayType() 检测浏览器是否能播放指定的音频/视频类型

load() 重新加载音频/视频元素

play() 开始播放音频/视频

pause() 暂停当前播放的音频/视频

audio常用事件

事件对我们非常有用,可以通过判断音频是否加载完成,来进行动画的操作,例如,我们点击录音,先有一个加载loading动画,然后在变成我们前面所讲的逐帧动画。

abort 当音频/视频的加载已放弃时

canplay 当浏览器可以播放音频/视频时

canplaythrough 当浏览器可在不因缓冲而停顿的情况下进行播放时

durationchange 当音频/视频的时长已更改时

emptied 当目前的播放列表为空时

ended 当目前的播放列表已结束时

error 当在音频/视频加载期间发生错误时

loadeddata 当浏览器已加载音频/视频的当前帧时

loadedmetadata 当浏览器已加载音频/视频的元数据时

loadstart 当浏览器开始查找音频/视频时

pause 当音频/视频已暂停时

play 当音频/视频已开始或不再暂停时

playing 当音频/视频在已因缓冲而暂停或停止后已就绪时

progress 当浏览器正在下载音频/视频时

ratechange 当音频/视频的播放速度已更改时

seeked 当用户已移动/跳跃到音频/视频中的新位置时

seeking 当用户开始移动/跳跃到音频/视频中的新位置时

stalled 当浏览器尝试获取媒体数据,但数据不可用时

suspend 当浏览器刻意不获取媒体数据时

timeupdate 当目前的播放位置已更改时

volumechange 当音量已更改时

waiting 当视频由于需要缓冲下一帧而停止

例如如下代码:

audio.onloadedmetadata = function () {

$(_this).removeClass("loading");

$(_this).addClass("playing");

}

当音频文件已经加载到浏览器之后,去除加载动画,增加播放动画。

js 操作音频文件播放暂停

如下代码可以控制audio播放还是暂停

var audio = document.getElementById('haorooms');

if(audio!==null){

//检测播放是否已暂停.audio.paused 在播放器播放时返回false.

alert(audio.paused);

if(audio.paused) {

audio.play();//audio.play();// 这个就是播放

}else{

audio.pause();// 这个就是暂停

}

}

当然也可以通过jquery轻松操作!

var audio = $(that).children("audio")[0];//获取,这段代码直接从我们文件中copy而来,可以直接写$("audio")[0]

audio.load();//加载

audio.play();//播放

audio.pause();//暂停

值得注意的是,我们可以用定时器来让语音播放结束之后,动画去掉。

定时器可以用setTimeout来写!关于setTimeout,可以看我之前的文章!

定时器是一个变量!

var second=$(that).data("second");//获取音频秒数

_this.dshiqi=setTimeout(function(){ //dshiqi是外层定义好的一个变量!

$(that).removeClass("playing");//播放完毕去除动画

},second*1000)

记得在每次切换点击的时候,清除之前的定时器

clearTimeout(_this.dshiqi);

不清除定时器,来回点击录音,会有问题!

上面就是对html5的audio实现高仿微信语音播放效果简单总结,欢迎留言交流!

ps :好多朋友问有没有demo,找了一下,发现只有一个很挫的静态页面,是之前用jquery写的,大家将就着看下吧!

欢迎去资源库下载!

php仿微信语音条,html5的audio实现高仿微信语音播放效果相关推荐

  1. html5的audio实现高仿微信语音播放效果

    效果图 前台大体呈现效果图如下: 点击就可以播放mp3格式的录音.点击另外一个录音,当前录音停止! 思路 关于播放动画,这个很简单,我们可以用css3的逐帧动画来实现.关于逐帧动画,我之前的文章也写过 ...

  2. 小程序 node.js mysql_基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...

    高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...

  3. node 小程序 php,基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...

    高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...

  4. 基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)

    高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...

  5. 基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选) 1

    高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+Think ...

  6. android仿喜马拉雅APP状态栏,源码分享:高仿喜马拉雅FM

    最新用空闲时间高仿了一下喜马拉雅FM这款APP,目前主要完成了发现栏目中的推荐页面. 效果演示 分析 +发现tab中有五个小分类,分别对应五个页面,所有在"发现"的控制器中使用了U ...

  7. 仿抖音短视频源码,高仿抖音双击点赞效果之双击的问题

    仿抖音短视频源码中,实现仿抖音的双击点赞效果,相关代码如下: public class MyView extends View {private GestureDetector gestureDete ...

  8. 如何改变android5.1音量进度条,HTML5音频audio属性

    audio 的控制函数主要有: load() 加载音频.视频软件,通常不必调用,除非是动态生成的元素,用来在播放前预加载 play() 加载并播放音频.视频文件,除非文件已经暂停在其他位置,否则默认重 ...

  9. 利用html5标签audio在不同客户端下适配播放音频

    //声明:ios系统不支持falsh,故而采用各平台支持的html5 audio标签 <script> //创建audio标签 var audio = document.createEle ...

最新文章

  1. 3.1 调试处理-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  2. 数据段描述符和代码段描述符(一)——《x86汇编语言:从实模式到保护模式》读书笔记10
  3. python新闻聚合_使用python对数据进行高效处理,包你玩转分组聚合
  4. 安装kenlm出现问题的解决方案gcc g++
  5. PC HARDWARE SHARE NO.4
  6. 最短路径——Dijkstra算法HDU Today(hdu2112)
  7. 给BERT加一个loss就能稳定提升?斯坦福+Facebook最新力作!
  8. NYOJ.904 search(二分查找,快速排序,结构体运用)
  9. jquery ajax 详细教程视频,jquery ajax 视频教程
  10. 天津理工大学和天津工业大学计算机考研,天津工业大学和天津理工大学,谁的实力更强?谁的录取分数更高呢...
  11. 发现同义词 python_用词代替同义词
  12. java 调用linux openoffice_Linux_ubuntu下搭建open offcie开发环境,最近在使用openoffice(以后简称oo - phpStudy...
  13. Unity单人游戏集合
  14. 采集利器 - Web Scraper教学及示例
  15. Linux 下检测是否插入U盘
  16. 关于安装cmd命令行安装pyinstaller库失败的解决方法
  17. 几款磁力搜索引擎,找资料更方便
  18. ch01变量和数据结构
  19. 苏黎世投机定律 读书笔记2
  20. MATLAB中cell(元胞)数组的基本用法

热门文章

  1. 阻容感基础05:电容器原理(1)-电容器模型
  2. python随机分组的思路_「Python」每日一练:学生学习小组分组程序
  3. mymps蚂蚁分类信息模板二次开发调用标签
  4. HFDS的Shell操作
  5. PAD存储过程以及相关的高级调用
  6. cpm、cpc、cps和cpa分别是什么意思
  7. CSS 实现色彩渐变
  8. C++笔记 char
  9. Error: unknown command “push“ for “helm“ Helm安装push插件
  10. Google体系地图纠偏算法