微信小程序实现音频文件播放进度的实例代码


Posted in Javascript onMarch 02, 2020

问题描述

在微信小程序中经常会用到控制文件播放的滑块,通过滑块可控制音频播放进度,下面即用代码实现。

解决方案

首先用.wxml与 .wmss 代码实现进度条的效果,再通过 .js 文件控制进度条的进度和进度条的时间显示。

.wxml中(播放进度结构的代码):

<view class="content-play-progress">
<text>{{play.currentTime}}</text>
<view>
<slider activeColor="#d33a31" block-size="12" backgroundColor="#dadada" value="{{play.percent}}"/>
</view>
<text>{{play.duration}}</text>
</view>

在上述代码中,第五行用到了slider组件,其值为播放进度 play.percent。

.wxss中(播放进度样式的代码) :

.content-play-progress{
display: flex;
align-items: center;
margin: 0 35rpx;
font-size: 9pt;
text-align: center;
}
.content-play-progress>view{
flex: 1;
}

保存上述代码后,运行程序,效果如图:

微信小程序实现音频文件播放进度的实例代码 

图 1   微信小程序进度条的实现

.js中(控制进度条的进度和时间的代码) :

onReady: function(){
this.audioCtx=wx.createInnerAudioContext()
var that=this
//播放失败检测
this. audioCtx.onError(function(){
console.log( ‘ 播放失败: ' +that.audioCtx.src)
})
//播放完成自动换下一曲
this. audioCtx.OnEnded(function(){
that.next()
})
//自动更新播放进度
this. audioCtx.onPlay(function(){
this. audioCtx.onTimeUpdate(function(){
that.setData({
‘ play.duration ' : formatTime(that.audioCtx.duration),
‘ play.currrentTime ' : formatTime(that.audioCtx. currrentTime),
‘ play.percent ' : that.audioCtx. currrentTime /
that.audioCtx.duration*100
})
})
//默认选择第一曲
T his.setMusic(0)
//格式化时间
function formatTime(time){
var minute=Math.floor(time/60)%60;
var second=Math.floor(time)%60
return (minute<10? ' 0 ' +minute:minute)+ ' : ' +
(second<10? ' 0 ' +second:second)
}
})
}

上述代码中,通过调用audioCtx的 onTimeUpdate() 的方法,获取音视频状态信息,并通过 formatTime() 函数处理时间格式,最后渲染到页面实现实时更新效果,效果如图:

微信小程序实现音频文件播放进度的实例代码 

图 2   微信小程序进度条的滑动

在slider组件上绑定 bindchange 事件,可以实现滑动进度条调节音视频文件播放进度,代码示例 :

<slider bindchange= ” sliderChange ” activeColor= ” #d33a31 ” block-size= ” 12 ” backgroundColor= ” #dadada ” value= ” {{play.percent}} ” / >

在.js文件中编写 sliderChange 函数获取用户当前选择的进度,将时间通过 audioCtx 对象的 seek() 方法进行设置,代码示例:

sliderChange: function(e){
var second=e.detail.value* that.audioCtx.duration/100
that.audioCtx.seek(secend)
},

总结

到此这篇关于微信小程序实现音频文件播放进度的实例代码的文章就介绍到这了,更多相关小程序音频文件播放进度内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
免费空间广告万能消除代码
Sep 04 Javascript
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
JS函数重载的解决方案
May 13 Javascript
Javascript中arguments对象详解
Oct 22 Javascript
JavaScript实现Java中StringBuffer的方法
Feb 09 Javascript
JavaScript之Object类型介绍
Apr 01 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
Sep 15 Javascript
JS DOMReady事件的六种实现方法总结
Nov 23 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
javascript将url解析为json格式的两种方法
Aug 18 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 Javascript
webpack HappyPack实战详解
Oct 08 Javascript
不刷新网页就能链接新的js文件方法总结
Mar 01 #Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 #Javascript
vue学习笔记之Vue中css动画原理简单示例
Feb 29 #Javascript
Vue组件化开发之通用型弹出框的实现
Feb 28 #Javascript
在vue项目实现一个ctrl+f的搜索功能
Feb 28 #Javascript
Js实现复选框的全选、全不选反选功能代码实例
Feb 28 #Javascript
基于html+css+js实现简易计算器代码实例
Feb 28 #Javascript
You might like
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
js 事件小结 表格区别
2007/08/13 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
jQuery获取URL请求参数的方法
2015/07/18 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
Python新手学习标准库模块命名
2020/05/29 Python
Python如何将字符串转换为日期
2020/07/31 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
struct和class的区别
2015/11/20 面试题
财务负责人岗位职责
2015/02/03 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
Python字符串格式化方式
2022/04/07 Python