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

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()

你可能感兴趣的:(学习)