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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙使用 axios

1、已安装ohpm,可参考上一篇 2、回到项目的根目录执行 ohpm install ohos/axios 安装成功后,查看项目的package 3、开放网络权限 在模块的module.json5中添加权限 "module": {"requestPermissions": [{"name": "…

【数据库原理】(25)数据完整性

一.完整性概述 数据库的完整性是保证数据正确性和一致性的关键。它防止数据库中存在不符合业务逻辑或语义规则的数据,避免错误信息的输入和输出。数据库的完整性和安全性不同,安全性关注的是防止非法用户的访问和恶意操作,而完整性则关注数据…

黑马苍穹外卖学习Day7

文章目录 缓存菜品实现思路代码开发 缓存套餐Spring Cache入门案例实现思路代码开发 添加购物车需求分析和设计代码开发 查看购物车需求分析代码开发 清空购物车需求分析代码实现 缓存菜品 实现思路 代码开发 Controller层 RestController("userDishController") …

2024.1.16 GCC 编译选项 屏蔽某些警告 CMAKE_CXX_FLAGS

gcc警告选项汇总 请求或取消警告的选项 警告是诊断消息,报告的结构本质上不是错误的,但是有风险或表明可能有错误。 以下与语言无关的选项不会启用特定的警告,但会控制GCC生成的诊断类型。 -fsyntax-only 检查代码中的语法错误,…

ROS第 6 课 编写简单的订阅器 Subscriber

文章目录 第 6 课 编写简单的订阅器 Subscriber1. 编写订阅者节点2. 测试发布者和订阅者 第 6 课 编写简单的订阅器 Subscriber 订阅器是基于编辑了发布器的基础上创建的,只有发布了消息,才有可能订阅。若未编辑发布器,可前往"ROS第5课 …

FlinkSQL【分组聚合-多维分析-性能调优】应用实例分析

FlinkSQL处理如下实时数据需求: 实时聚合不同 类型/账号/发布时间 的各个指标数据,比如:初始化/初始化后删除/初始化后取消/推送/成功/失败 的指标数据。要求实时产出指标数据,数据源是mysql cdc binlog数据。 代码实例 --SET t…

解决kali beef启动失败解问题

只限于出现这个提示的时候使用 卸载 ruby apt remove ruby 卸载 beef apt remove beef-xss 重新安装ruby apt-get install ruby apt-get install ruby-dev libpcap-dev gem install eventmachine 重新安装beef apt-get install beef-xss 弄完以上步骤如果还是不行就重启kali再试…

cmake构建动态库实例(cmakelist)

文章目录 一、开发实例1.1 代码目录1.2 代码内容1.2.1 CMakeLists.txt1.2.2 mylib.cpp1.2.2 mylib.h1.2 编译二、动态库使用方法一、动态链接源代码构建运行方法二:dlopen方式一、开发实例 通过cmake构建静态开发实例如下: 1.1 代码目录 代码目录结构如下:

nestjs 装饰器

1、装饰器定义 装饰器是一种特殊的类型声明,它可以附加在类、方法、属性、参数上边 需开启tsconfig.json中 "experimentalDecorators":true 生成tsconfig.json文件 tsc -init 2、类装饰器 // 类装饰器 主要是通过符号添加装饰器 // 装饰器会自动把cl…

CCC数字钥匙标准3.0版本解读(23)

文章目录 17.8 数据结构定义17.8.1 请求报头17.8.2 响应报头17.8.3 Key类型17.8.4 EncryptedDataContainer17.8.5 未加密的uiBundle17.8.6 数字钥匙状态17.8.7 manageKey操作类型17.8.8 钥匙操作类型17.8.9 通知的事件类型17.8.10 事件通知的事件数据17.8.11 未加密的时间通知数…

【MySQL】MySQL表的增删查改以及聚合函数/group by句子的使用

文章目录 一、创建--Create1.单行数据 全列插入2.多行数据 指定列插入3.插入否则更新4.替换 -- replace 二、读取--Retrieve1.SELECT列1.1全列查询1.2指定列查询1.3查询字段为表达式1.4为查询结果指定别名1.5 结果去重 -- distinct 2.WHERE 条件3.结果排序4.筛选分页结果 三、…

《数据结构》学习笔记

1.算法分析的两个主要任务:正确性(不变性 单调性) 复杂度。 2.复杂度分析的主要方法: 迭代:级数求和;递归:递归跟踪 递推方程猜测 验证 3.级数: (1)算…

LLM之RAG实战(十六)| 使用Llama-2、PgVector和LlamaIndex构建LLM Rag Pipeline

近年来,大型语言模型(LLM)取得了显著的进步,然而大模型缺点之一是幻觉问题,即“一本正经的胡说八道”。其中RAG(Retrieval Augmented Generation,检索增强生成)是解决幻觉比较有效的…

智能小程序小部件(Widget)表单组件属性说明+代码明细

在 Tuya MiniApp Tools 中,新建项目并选择小部件(Widget)对应模板即可自动创建小部件(Widget)项目。 button 按钮,用于强调操作并引导用户去点击。 属性说明 属性名类型默认值必填说明sizestringdefault否按钮的大小typestringdefault否按钮的样式类…

opencv_角点检测

文章内容 一个opencv检测角点的程序 运行效果 #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream>using namespace cv; using namespace std;void detectCorners(M…

低代码-详情页组件设计

详情页数据结构定义 layout:{// 按钮数据buttonLayout:{headButton:[], // 页头按钮footButton:[] // 页脚按钮},// 详情页表单配置config:{}, // 配置组件列表detailLayout:[]}默认行为 进表单初始化&#xff0c;只展示表单属性&#xff0c;隐藏通用、数据、事件tab项。 配…

低代码自动化平台| 游戏规则改变者

自动化测试对于软件开发公司起着非常重要的作用。它在公司及其客户之间建立了对优质产品的信任。此外&#xff0c;它还使软件开发人员更加自信&#xff0c;因为他们可以在其他模块上工作&#xff0c;而不必担心应用程序的任何现有功能是否存在错误。在软件测试中融入自动化是必…

数据分析-Pandas如何整合多张数据表

数据分析-Pandas如何整合多张数据表 数据表&#xff0c;时间序列数据在数据分析建模中很常见&#xff0c;例如天气预报&#xff0c;空气状态监测&#xff0c;股票交易等金融场景。数据分析过程中重新调整&#xff0c;重塑数据表是很重要的技巧&#xff0c;此处选择Titanic数据…

多测师肖sir___ui自动化测试po框架(升级)

ui自动化测试po框架&#xff08;升级&#xff09; po框架 一、ui自动化po框架介绍 &#xff08;1&#xff09;PO是Page Object的缩写&#xff08;pom模型&#xff09; &#xff08;2&#xff09;业务流程与页面元素操作分离的模式&#xff0c;可以简单理解为每个页面下面都有一…

【linux】visudo

碎碎念 visudo命令是用来修改一个叫做 /etc/sudoers 的文件的&#xff0c;用来设置哪些 用户 和 组 可以使用sudo命令。并且使用visudo而不是使用 vi /etc/sudoers 的原因在于&#xff1a;visudo自带了检查功能&#xff0c;可以判断是否存在语法问题&#xff0c;所以更加安全 …