《微信小程序开发从入门到实战》学习八十一

发布时间:2024年01月13日

6.11 内部音频API

6.11.2 内部音频事件监API

内部音频上下文对象可以设置一些事件监听函数 。在音频播放过程,发生 特定事件会执行特定的回调函数。代码如下:

????//?监听音频进入可以播放状态的事件,但不保证后面可以流畅播放

????innerAudioContext.onCanPlay(()?=>?{

??????//?do?something

????})

????//?监听音频播放事件

????innerAudioContext.onPlay(()?=>?{

??????//?do?something

????})

????//?监听音频加载中事件(当音频因为数据不足,需要停下来加载时会触发)

????innerAudioContext.?onWaiting(()?=>?{

??????//?do?something

????})

????//?监听音频播放进度更新事件

????innerAudioContext.onTimeUpdate(()?=>?{

??????//?do?something

????})

????//?监听音频暂停事件

????innerAudioContext.onPause(()?=>?{

??????//?do?something

????})

????//?监听音频进行跳转操作的事件

????innerAudioContext.onSeeking(()?=>?{

??????//?do?something

????})

????//?监听音频完成跳转操作的事件

????innerAudioContext.onSeeked(()?=>?{

??????//?do?something

????})

????//?监听音频停止事件

????innerAudioContext.onStop(()?=>?{

??????//?do?something

????})

????//?监听音频自然播放至结束事件

????innerAudioContext.onEnded(()?=>?{

??????//?do?something

????})

????//?监听音频播放错误事件

????innerAudioContext.onError(res?=>?{

??????//10001?系统错误,10002?网络错误,10003?文件错误,10004?格式错误,-1?未知错误、

??????console.log(res.errCode)

????})

6.12?背景音频API

? ? 背景音频API支持用户离开小程序后继续播放音乐 ,即当小程序切入后台时,音频如果处于播放状态,就可继续播放。但在后台状态下不能通过调用API操纵音频的播放状态。

? ? 微信客户端6.7.2起,需要在小程序切入后台继续播放音频,需在app.json中配置 requiredBackgroundModes属性。设置方式如下:

{

? ? ? ? "requiredBackgroundModes":?["audio"]

}

开发版和体验版可直接生效,正式版需通过审核

6.12.1 背景音频API

小程序使用背景音频管理器实现背景音频的相关操作,需要先获取全局唯一的背景音频管理器,代码如下:

const?backgroundAudioManager?=?wx.getBackgroundAudioManager()

背景音频管理器可设置或读取一些属性值。示例代码如下:

????//?设置音频必填(必填)。原生音频播放器中的分享功能,分享出去的卡片标题,也将使用该值

????backgroundAudioManager.title?=?'Music?Title'

????//?设置音频专辑名。原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值

????backgroundAudioManager.epname?=?'Episode?Name'

????//?设置音频歌手名。原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值

????backgroundAudioManager.singer?=?'Singer'

????//?设置封面图URL。用于原生音频播放器背景图,原生音频播放器中的分享功能,分享出去的卡片配图及背景也将使用该图

????backgroundAudioManager.coverImgUrl?=?'http://xx.jpg'

????//?设置页面链接。原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值

????backgroundAudioManager.webUrl?=?'http://xx.jpg'

????//?设置音频协议。基础库1.9.94版本开始支持。默认为http,设置hls可以播放HLS协议的

????backgroundAudioManager.protocol?=?'hls'

????//?设置音频开始播放的位置为30秒处

????backgroundAudioManager.startTime?=?30

????//?设置音频链接,基础库2.2.3版本开始支持云文件ID,设置了src后会自动播放

????backgroundAudioManager.src?=?'http://xx.mp3'

????//?当前音频的长度,单位为秒

????console.log(backgroundAudioManager.duration)

????//?当前音频播放的位置,单位为秒

????console.log(backgroundAudioManager.currentTime)

????//?当前音频是否暂停或停止

????console.log(backgroundAudioManager.paused)

????//?音频已缓冲时间

????console.log(backgroundAudioManager.buffered)

背景音频管理器可使用一些函数控制音频的播放行为。示例代码如下:

????//?播放音频

????backgroundAudioManager.play()

????//?暂停音频,再次播放时会从暂停处开始播放

????backgroundAudioManager.pause()

????//?跳转到音频3.1秒处。跳转时间单位为秒,精确到小数点后3位

????backgroundAudioManager.seek(3.1)

????//?暂停音频,再次播放时会从头开始播放

????backgroundAudioManager.stop()

文章来源:https://blog.csdn.net/xy2937131682/article/details/135565290
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。