浮动居中方案-通过left和top定位音乐图标

我们首先要让该音乐图标脱离文档流,设置 position: absolute,再通过 left: 50%;设置居中,但此时我们的居中是对图标的左侧而言,所以我们还需要减去图标一般的宽度。

.audio{width: 102rpx;height: 102rpx;position: absolute;left: 50%;margin-left: -51rpx;top: 185rpx ;
}
 <image class="audio"  src="/images/music-start.png"></image>

小程序音乐播放API

BackgroundAudioManager 实例,可通过 wx.getBackgroundAudioManager 获取。

更多属性参考微信小程序官方文档。

小试音乐播放API

设置音乐图标的点击事件,通过我们之前已经导入的文章相关信息的数组获取:

这时候我们点击音乐图标就可以看到效果音乐开始播放了,并且可以暂停:


但是这时候我们将小程序切到后台,音乐会停止播放,我们得在app.json中配置相关属性,再次尝试切后台会发现音乐会继续播放:

切换音乐播放图标的两种方案,条件渲染与js表达式

修改点击事件实现点击不同文章播放不同文章的音乐,而不是固定的数组的第一项的音乐:

在data中设置一个变量来判断当前音乐是否在播放:


条件渲染判断当前图标是什么:

通过js表达式:

音乐播放状态的切换

我们上面实现的只是从未播放状态到播放状态,我们还需要实现音乐播放时到音乐暂停,所以我们还需要实现暂停图标的点击事件:


我们还可以通过coverImagUrl设置底部播放音乐的图标:

背景音乐的监听相关API

我们之前实现的代码其实还是有问题的,当我们点击底部微信小程序官方提供的控件是,我们上面的图标并不能实现切换,所以我们就得对背景音乐事件进行监听。

同步音乐总控开关和自有播放开关的状态

我们只需要在监听函数中调用我们写好的函数即可(写在onload里):

全局变量解决音乐状态初始化不正确问题

当我点击播放音乐后返回到主页面,再点击进入详情页,这时候英语依旧是在播放的状态,但我们的图标却还是初始默认值,我们可以通过全局变量解决这个问题。
我们在app.js中设置一个变量:

然后在我们写好的start和stop函数里面设置全局变量的改变,我们还需要在修改data中的isplaying为全局变量的值,也就是进入详情页获取到是否在播放从而设置初识图标。

让每篇文章音乐独立显示状态

再设置一个全局变量的英语的id:

判断当前的文章的音乐是否在播放:

微信小程序入门与实战之音乐播放相关推荐

  1. 【微信小程序】微信小程序入门与实战-个人笔记

    微信小程序入门与实战 文章目录 微信小程序入门与实战 1 初识微信小程序 1-1 2020版重录说明 1-2 下载小程序开发工具 1-3 新建小程序项目 1-4 小程序appid的注册 1-5 新版小 ...

  2. 微信小程序入门与实战(七月)

    微信小程序入门与实战(七月) 第1章 初识微信小程序 第2章 小程序的基本目录结构与文件作用剖析 2-1 小程序页面的4种基本文件类型详解 第3章 rpx响应式单位与flex布局 3-3 新建页面的技 ...

  3. 微信小程序入门与实战笔记

    微信小程序 目录 微信小程序 1微信小程序介绍 1.1什么是微信小程序 1.2小程序特点 1.3对开发者的影响 1.4分辨率与rpx 1.4.1英寸 1.4.1分辨率(pt): 1.4.2分辨率(px ...

  4. 【DRF+Django】微信小程序入门到实战_day04(上)

    (0)摘要 # 课程链接 入门到实战,讲讲公司的微信小程序[django+drf+小程序实战]_哔哩哔哩_bilibili # 微信开发者文档 微信开放文档 # 课程内容 (1)P28_用户登录页面 ...

  5. 【DRF+Django】微信小程序入门到实战_day03(下)

    (0)摘要 # 课程链接 入门到实战,讲讲公司的微信小程序[django+drf+小程序实战]_哔哩哔哩_bilibili # 微信开发者文档 微信开放文档 # 课程内容 (1)P28_发送短信验证码 ...

  6. 【DRF+Django】微信小程序入门到实战_day01(下)

    (0)摘要 # 课程链接 入门到实战,讲讲公司的微信小程序[django+drf+小程序实战]_哔哩哔哩_bilibili # 文档链接 微信开放文档 # 课程内容 (1)flex 布局 (2)fle ...

  7. 微信小程序入门与实战之初识小程序的自定义组件

    文章列表顶部轮播图跳转 为每个轮播图设置点击响应函数,为其设置参数为文章的id 小程序tabBar选项卡配置基础 我们在app.json配置tabBar选项卡: "tabBar": ...

  8. 微信小程序入门与实战之条件渲染、列表渲染与小程序事件

    使用LinUI的Icon组件代替图片ICON 引入LinUI的icon库: "usingComponents": {"l-icon":"/minipr ...

  9. Taro 开发微信小程序入门与实战

    目前比较流行的小程序开发框架主要有 WePY.Mpvue.Taro. WePY,Mpvue 是完全用 Vue 的开发方式来开发小程序,WePY 是比较早的小程序开发框架了,相对而言 Mpvue 的开发 ...

最新文章

  1. POJ1022 Packing Unit 4D Cubes
  2. android 有效载荷大图,避OOM
  3. 类型转换:隐式转化(算数转换,整型提升,混合提升,赋值转换),强制转换【C语言】
  4. arcgis重心迁移分析_山东省植被覆盖度变化与气候因子相关性分析
  5. Visual Studio 2008 完全卸载 - C语言零基础入门教程
  6. java实验类与对象_【实验课件】上机实践2  类与对象
  7. python去重复排序_Python实现删除排序数组中重复项的两种方法示例
  8. Flutter自定义布局套路
  9. AngularJS Documents 官方英文文档
  10. 一个hard lockup的vmcore实例解析
  11. SVN遗漏so文件的解决办法
  12. 如何写好科研论文2021秋期末考答案|研究生网课期末考答案|学堂在线|清华大学高飞飞
  13. 物理学家揭示深度学习原理:神经网络与宇宙本质惊人关联
  14. 游戏编程之六 游戏编程的特点
  15. python-ip端口扫描器
  16. linux网桥实现代码走读
  17. 软考是什么?-最全软考详解
  18. Mysql数据库乱码解决方案
  19. 实践是检验真理的唯一标准2 - 脱壳篇03
  20. Windows Terminal + WSL + Ubuntu + 图形化 总结

热门文章

  1. 大数据时代商业银行数字化转型
  2. 害怕冲突吗?冲突也有正面的意义?
  3. 案例二:行走的小女孩
  4. 循环神经网络系列(六)基于LSTM的唐诗生成
  5. Windows Sleep函数休眠精度
  6. python将二维和三维数组保存到txt文件
  7. 上海师范大学计算机考研难度,上海师范大学考研难吗?一般要什么水平才可以进入?...
  8. MVC三层结构应用程序开发的优缺点
  9. LeetCode 24:两两交换链表中的节点、1662. 检查两个字符串数组是否相等
  10. 屏幕输入三个整数,判断三角形