html在微信没有音乐播放器,如何解决微信小程序音乐播放器制作中遇到的各种问题?...

在开发小程序过程需要加入一个音乐播放器,如何制作呢?在制作过程中遇到的问题该如何解决呢?

春哥团队小编馨馨今天和大家分享如下:

ec540d4ec36e1a8c66949b85bf362d30.png

在onload中,必须在获取云数据库的数据时给innerAudioContext.src赋默认值

Page({

onLoad: function (options) {

album.get().then(res => {//获取云数据库的数据

this.setData({

albums: res.data

})

innerAudioContext.src = res.data[this.data.currentIndex].link

})

//错误innerAudioContext.src = this.data.albums[this.data.currentIndex].link

//此处console.log(this.data.albums)为[]因为album.get()是异步操作

}

})

复制代码

解决监听音频进度更新onTimeUpdate不执行

更新onTimeUpdate不触发和onWaiting有关,当拖动进度\播放完毕\切歌等重新加载音乐时,都会 触发onWaiting,然后onTimeUpdate就无法执行 .解决方法是:暂停音乐后再定时(延迟时间要充足!)播放

innerAudioContext.pause()//暂停音乐

//音乐跳转到指定位置

innerAudioContext.seek((e.detail.value * innerAudioContext.duration) / 100)

setTimeout(() => {

innerAudioContext.play()//播放音乐

}, 500)

复制代码

实现图片原地旋转动画

developers.weixin.qq.com/miniprogram…

const innerAudioContext = wx.createInnerAudioContext()

const animation = wx.createAnimation({//创造动画

duration: 500,

timingFunction: 'linear',

})

this.data.timer = setInterval(() => {//封面旋转

animation.rotate(this.data.rotate_deg).step()

this.setData({

rotate_deg: this.data.rotate_deg + 45,

animationData: animation.export()

})

}, 500)

复制代码

获取当前歌曲信息

方法

用法

wx:for

在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件

wx:key

指定列表中项目的唯一的标识符

wx:key="字符串"

代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。

wx:key="*this"

代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字。

wx:for-item

指定数组当前元素的变量名

wx:for-index

可以指定数组当前下标的变量名

data-*

组件上触发的事件时,会发送给事件处理函数

复制代码

imgClick:function (e){

this.setData({

currentIndex: e.target.dataset.index

})

...

},

复制代码

如何如何实现切割保证进度条正常更新-暂停播放(用原生的还是自制的)

developers.weixin.qq.com/community/d…

如何获取网易云音乐链接

网易云音乐外链(其中id改为相应的歌曲ID即可)

实现歌曲循环播放

第一首切上一首: ①当前索引 = 歌单长度; 当前索引-1

最后一首切下一首: ①当前索引 = (当前索引 + 1) % 歌单长度

prev_song: function(){//上一首

if (this.data.currentIndex == 0) {//判断是否是第一首歌

this.data.currentIndex = this.data.albums.length

}

this.setData({

currentIndex: this.data.currentIndex - 1

})

...

},

next_song: function () {//下一首

var len = this.data.albums.length//歌曲列表长度

var x = (this.data.currentIndex + 1) % len//下一首歌的索引

this.setData({

currentIndex: x

})

...

},

复制代码

本文来源于网友投稿。

### 回答1: 学习制作微信小程序的方法如下: 1. 了解小程序的基本概念和功能:可以通过官方文档或者相关书籍来了解小程序的基本概念和功能。 2. 学习相关技术:小程序开发需要掌握 HTML、CSS 和 JavaScript 等前端技术。如果不熟悉这些技术,建议先学习。 3. 安装开发工具:微信官方提供了微信开发者工具,可以用来开发和调试小程序。 4. 编写代码:根据需求编写小程序的代码,并在开发者工具调试。 5. 测试和发布:在开发者工具测试小程序,确保小程序没有任何问题后,可以将其发布到微信平台。 此外,还可以通过参加相关培训课程、阅读开发教程和参考开源代码来加深对小程序的理解和提高开发水平。 ### 回答2: 学习制作微信小程序的关键是掌握相关的开发知识和技术。以下是一些学习制作微信小程序的步骤和方法: 1. 理解基础知识:开始学习前,首先要了解HTML、CSS和JavaScript等前端技术的基础知识。这些知识将帮助你更好地理解小程序的开发原理和技术。 2. 学习开发工具:微信小程序的开发工具是一个非常重要的学习和实践平台。你可以从官方网站下载并安装微信开发者工具,然后熟悉其基本功能和使用方法。 3. 学习小程序框架:微信小程序使用了一套自己的框架和组件库,这些是开发小程序的基础。你可以通过阅读官方文档和教程来学习如何使用这些框架和组件。 4. 实践和练习:通过实际的项目开发实践来巩固所学知识。可以尝试开发一些简单的小程序,逐渐提升自己的技术水平。 5. 参考优秀案例:参考和学习别人的优秀案例是非常有益的。你可以阅读一些相关的技术博客和开源项目,了解其他开发者是如何解决问题和实现功能的。 6. 社区和论坛:参与微信小程序的开发者社区,与其他开发者交流和分享经验。这样可以迅速获取最新的开发资源和技术资讯,也能解决可能遇到问题。 7. 持续学习和更新:微信小程序的技术更新很快,因此要保持学习的状态,随时了解最新的开发技术和最佳实践。 总之,学习制作微信小程序需要理解相关的开发知识和技术,并通过实践和参考优秀案例来提升自己的技术水平。不断学习和更新是保持在该领域取得成功的关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值