小程序实现背景音乐播放和暂停


Posted in Javascript onJune 19, 2020

本文实例为大家分享了小程序背景音乐,供大家参考,具体内容如下

我做这个项目的需求,用到一个背景音乐的播放和暂停;
当用户点击进入音乐界面的时候用户需要手动点击播放对应的音乐,那么播放以后推出音乐界面这个音乐还是处于播放状态,以及音乐的图标的状态也一个是播放。so看看代码吧!
那这里用到了一个新的api 知点,wx.createInnerAudioContext,可以参考小程序官方文档 wx.createInnerAudioContext

具体属性

innerAudioContext.autoplay = true 是否自动播放
innerAudioContext.src=“url” 音乐路径
方法 innerAudioContext.onPlay() 播放
InnerAudioContext.pause() 暂停

首先看一下我的目录结构

小程序实现背景音乐播放和暂停

我的照片放在了images里。主页面是ceshi.wxml ,音乐播放界面是index.wxml

开始上菜,ceshi.wxml

<button bindtap='click'>click me</button>

ceshi.js

click(){
 wx.navigateTo({
 url: '../index/index',
 })
 },

index.wxml

<!-- 背景音乐 -->
<view class='bgmView' catchtap='BGM'>
 <image wx:if='{{bgm}}' class='bgmImg {{bgmImgAni}}' src='/images/kaishi.png'></image>
 <image wx:else class='bgmImg' src='/images/zanting.png'></image>
</view>

index.wxss

/* 背景音乐 */

.bgmView {
 position: fixed;
 top: 20rpx;
 right: 20rpx;
 z-index: 99;
}

.bgmImg {
 width: 70rpx;
 height: 70rpx;
}

.bgmImgAni {
 animation: jumpball 4s infinite linear;
}

@keyframes jumpball {
 100% {
 transform: rotate(360deg);
 }

index.js

// 背景音乐
const innerAudioContext = wx.createInnerAudioContext()
Page({
 /**
 - 页面的初始数据
 */
 data: {
 mp3: 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46',

 // 背景音乐
 bgm: false,
 },

 // 背景音乐
 BGM: function(e) {
 let that = this;
 if (that.data.bgm) {
  that.setData({
  bgm: false,
  })
  innerAudioContext.pause(); /** 暂停音乐 */

 } else {
  that.setData({
  bgm: true,
  bgmImgAni: "bgmImgAni"
  })
  
  // 播放音乐
  innerAudioContext.autoplay = true
  innerAudioContext.loop = true
  innerAudioContext.src = that.data.mp3;
  innerAudioContext.play()
 }
 },
 /**
 - 生命周期函数--页面卸载时
 */
 onUnload() {
 wx.setStorageSync("bgm", this.data.bgm)
 },
 /**
 - 生命周期函数--监听页面加载
 */
 onLoad: function(e) {
 var bgm = wx.getStorageSync("bgm")
 this.setData({
  bgm
 })
 },
})

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 动态生成私有变量访问器
Dec 06 Javascript
Js 冒泡事件阻止实现代码
Jan 27 Javascript
jQuery基本选择器选择元素使用介绍
Apr 18 Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 Javascript
JS实现局部选择打印和局部不选择打印
Apr 03 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
jquery.qtip提示信息插件用法简单实例
Jun 17 Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 Javascript
使用Vue实现移动端左滑删除效果附源码
May 16 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
Jul 17 Javascript
小程序选项卡以及swiper套用(跨页面)
Jun 19 #Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
Jun 19 #Javascript
小程序实现多个选项卡切换
Jun 19 #Javascript
微信小程序 button样式设置为图片的方法
Jun 19 #Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 #Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
Jun 19 #Javascript
深入解读VUE中的异步渲染的实现
Jun 19 #Javascript
You might like
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
JavaScript中的函数嵌套使用
2015/06/04 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
在python里面运用多继承方法详解
2019/07/01 Python
pybind11在Windows下的使用教程
2019/07/04 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
linux面试题参考答案(3)
2012/09/13 面试题
Linux的主要特性
2016/09/03 面试题
室内设计自我鉴定
2013/10/15 职场文书
仓库主管的岗位职责
2013/12/04 职场文书
研究生导师推荐信
2015/03/25 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
员工试用期工作总结
2019/06/20 职场文书
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python