微信小程序音频播放之音乐播放器

微信小程序音频播放之音乐播放器,第1张

虽然界面很简单,但是一个音频播放器该有的功能大部分都有了(没有歌词显示功能).

主要实现的功能有:

1.实现音频播放,暂停

2.实现拖拽进度条,快进音频进度

3.实现上一首,下一首,列表循环播放

4.实现关闭小程序,也可在后台播放,正式版需要通过审核,开发版本可正常测试

一丶index.js

数据初始化

playMusic 切换播放歌曲的方法.

countTimeDown 循环计时,进度展示

sliderChange slider的拖拽事件

lastMusic 上一首

playOrpause 中间的按钮,播放/暂停切换

nextMusic 下一首

listClick 列表点击事件

界面切换,时长格式化

二丶index.wxml

三丶index.wxss

四丶要实现关闭小程序后,依然后台播放,微信顶部悬浮展示,需要再app.json配置requiredBackgroundModes属性

小程序项目中涉及到视频功能,需求就是禁止拖动进度条。但是小程序video并没有提供一个属性用来禁止进度条拖动

以上是从微信官方论坛中找到的答案,就是说如果想实现禁止拖动进度条,要么就是隐藏掉,要么就是自己自定义一个进度条。如果用show-progress=‘{{false}}’,这个属性隐藏掉了进度条,那video原本自带的底部控制栏中(播放/暂停 ,进度时间,进度条,总时长,全屏/退出全屏),这些按钮中,就只剩下全屏/退出全屏了。

开始,我决定自定义进度条,但是我发现video里嵌套的组件,虽说官网给出的是可以使用view,但是只有界面效果,却触发不了view对应的方法,也就是说,我用slider组件自定义了一个进度条,并且禁用,然而不管用。

于是乎,几经波折,来回调试,最终还是决定用video自带的控制栏,通过在进度条位置,设置一个遮罩层,再设置一下透明度,这样,光标点不到进度条,就拖动不了了。当然,这个遮罩层也是要用<cover-view>

在设置遮罩层时,还遇到了问题,就是position: relativeopacity:0无效!!!

改成这样::position: absoluteopacity:0模拟器,安卓手机上都没问题,iOS真机上无效!!!

但是我发现,将透明度改大一点,大于0,iOS上就可以了。

所以,我用

wx.getSystemInfo,来判断设备,如果是iOS,那就设置透明度为0.1,如果是安卓,就为0.

其实到这里,问题基本解决了,但是还有一点点瑕疵,就是因为保留了本身的控制栏,那全屏/退出全屏的按钮功能要保留,所以遮罩层不能罩到要用的按钮,不然就都点击不了,所以在使用的按钮上我用view,设置了一个跟遮罩层一样颜色一样透明度的还补全,这样从视觉效果上才算是过关。

格式调整

界面相关

***********************************************分割线*****************************************

标签

一、视图容器(View Container):

view 视图容器

scroll-view 可滚动视图容器

swiper 可滑动的视图容器

二、基础内容(Basic Content)

icon 图标

text 文字

progress 进度条

三、表单组件(Form)

button 按钮

form 表单

input 输入框

checkbox 多项选择器

radio 单项选择器

picker 列表选择器

slider 滑动选择器

switch 开关选择器

label 标签

四、 *** 作反馈组件(Interaction)

action-sheet 上拉菜单

modal 模态d窗

progress 进度条

toast 短通知

五、导航(Navigation)

navigator 应用内跳转

六、多媒体(Media)

audio 音频

image 图片

video 视频

七、地图(Map)

map 地图

八、画布(Canvas)

canvas 画布


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11292613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存