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


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 相关文章推荐
extjs之去除s.gif的影响
Dec 25 Javascript
jquery仿搜索自动联想功能代码
May 23 Javascript
使用Node.js配合Nginx实现高负载网络
Jun 28 Javascript
jQuery实现的网页竖向菜单效果代码
Aug 26 Javascript
javascript实现二级级联菜单的简单制作
Nov 19 Javascript
JS HTML5实现拖拽移动列表效果
Aug 27 Javascript
jQuery实现的简单在线计算器功能
May 11 jQuery
vue.js 左侧二级菜单显示与隐藏切换的实例代码
May 23 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
element-ui中的select下拉列表设置默认值方法
Aug 24 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
PHP number_format() 函数定义和用法
2012/06/01 PHP
PHP5函数小全(分享)
2013/06/06 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
js常用函数 不错
2006/09/08 Javascript
Display SQL Server Login Mode
2007/06/21 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
简述vue状态管理模式之vuex
2018/08/29 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
python读取并写入mat文件的方法
2019/07/12 Python
python递归下载文件夹下所有文件
2019/08/31 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
自我评价优秀范文分享
2013/11/30 职场文书
医院办公室主任职责
2013/12/29 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
MySQL限制查询和数据排序介绍
2022/03/25 MySQL