微信小程序:音频悬浮、隐藏、中断播放的逻辑处理,音频播放的bug

小程序video播放器隐藏进度条无效问题 微信小程序video播放m3u8格式监控,进度条隐藏无效解决办法 阅读详情

问题:小程序悬浮时,工程文件的音频不能够持续播放。重新显示程序界面,此时的页面显示仍旧是播放样式(应该是暂停样式),故而需要对其做个处理。

1.从加载逻辑入手刷新

  • 小程序目前不提供悬浮事件监听函数,故而需要自行处理。

分析加载逻辑:

  1. 初次加载顺序:
    1. App onLaunch()
    2. App onShow()
    3. Page onShow()
  2. 页面悬浮,或者切换到其他App,或者黑屏,导致页面隐藏:
    1. Page onHide()
    2. App onHide()
  3. 重新恢复到小程序界面:
    1. App onShow()
    2. Page onShow()

问题解决逻辑:

  • 无法实现实时解决页面刷新:我们无法直接获知现在page隐藏是由于:
    • 悬浮、切换APP、黑屏(不知道)
    • 切换到了其他page(不知道)

所以,我们无法及时去刷新控制音频的显示部分。故而,我们需要在再次显示的时候,把由于悬浮等问题导致的页面在page onShow的时候进行更新,保持用户感知一致。

解决思路:

  • 所以,需要对小程序整体App onHide-> App onShow时,进行记录,然后在进入Page onShow()时进行页面处理!

==========上面的有点复杂了==========

2. 从onPause进行刷新。经过测试,发现如下情况:

wx.createInnerAudioContext() 的BUG:

  • stop():在真机上会导致onPause()事件的产生。
  • 模拟器更是bug很多,.play()在模拟器上也会产生这个问题!

应对方案:

  1. 避免使用.stop()[我个人的项目]
  2. 再onPause()中处理页面展示

3.真机测试又发现情况:

1.iOS:符合上图。

2.Android:没反应。上述部分,Android不会触发onPause。。。

应对方案,把1的部分加入,在小程序隐藏又显示之后,在page的onShow中进行刷新页面的操作:

1.定义全局flag

globalData: {
  userInfo: null,
  hideflag: 0 //app隐藏标志
},

2.app js onHide处理

onHide:function(){
  console.log("全局页面隐藏");
  this.globalData.hideflag = 1;
  console.log("this.globalData.hideflag:",this.globalData.hideflag);
  //t.test();
},

3.page onShow处理刷新逻辑

onShow: function () {
  console.log("page页面onShow")   
  const app = getApp();
  if(app.globalData.hideflag ==1){
      //页面刷新处理
    console.log("\n全局隐藏后,再次显示,就是暂停界面...") 
    app.globalData.hideflag = 0
  }
},

 

微信小程序 - 详细实现页面后台静默播放背景音乐播放音频效果,页面不会显示任何音乐播放器卡片、播放信息等,适合在页面右上角悬浮一个旋转音乐盒可随时让用户暂停播放,音乐碟片旋转背后播放歌曲在前台看不到! 微信小程序,vue2,vue3,页面播放背景音乐,播放音频,页面背景音乐播放器控件,音乐盒,图标360旋转动画,点击静音和取消静音,活动页面,右上角挂载一个悬浮图片用来控制背景音乐的播放与暂停,音乐播放CD旋转效果,封面旋转,悬浮球,一进入页面就开始播放,后台播放,旋转,微信小程序后台播放音乐,悬浮图标可静音,音频后台播放,背景音频,开启悬浮窗功能,北京播放,生日祝福H5页面带背景播放音乐,离开后背景音乐还是播放呢,ios静音状态下无声音、音频播放创建多个等问题,IOS真机无法播放声音,处理ios无法播放背 阅读详情

相关推荐

微信小程序 - 详细实现页面后台静默播放背景音乐播放音频效果,适合在页面右上角悬浮一个旋转音乐盒可随时让用户静音暂停,页面不会显示任何音乐播放器卡片、播放信息等,音乐碟片旋转背后播放歌曲在前台看不到!

微信小程序,vue2,vue3,页面播放背景音乐,播放音频,页面背景音乐播放器控件,音乐盒,悬浮图标可静音,音频后台播放,背景音频,开启悬浮窗功能,北京播放,生日祝福H5页面带背景播放音乐,离开后背景音乐还是播放呢,ios静音状态下无声音、音频播放创建多个等问题,IOS真机无法播放声音,图标360旋转动画,点击静音和取消静音,活动页面,右上角挂载一个悬浮图片用来控制背景音乐的播放与暂停,音乐播放CD旋转效果,封面旋转,悬浮球,一进入页面就开始播放,后台播放,旋转,微信小程序后台播放音乐,页面离开切换暂停,w

🏆 前端领域优质创作者 3561

微信小程序,分享如何封装一个全局支持暂停,拖动等各类操作的音视频等多媒体管理器

       不知不觉埋头于业务已许久,距离上一篇分享应该很久很久以前,具体何时,已无从知晓。慢慢的开始觉得锅有点热,感觉呼吸有点困难,温水里面的青蛙趁着腿还没完全麻木的时候,也想着开始重拾旧梦,稍微往上蹬蹬,好了,废话就不多提了,时不时的低头总结某段时间的成果大过于做10个新项目,下面就开始慢慢的总结之路吧!(ps:其实是往事不堪回首)        前置背景介绍:公

Emperor灬fly的博客 923

微信小程序毕业设计实战:从爬虫陷阱到工程交付

微信小程序开发是软件工程专业毕业设计的高频选题,其本质远超UI套壳或简单API调用,而是一次涵盖需求分析、合规设计、分包架构、性能优化与论文证据链构建的全栈工程实践。理解小程序分包加载机制、Webview渲染原理及本地存储约束,是解决白屏、卡顿、跨端同步等典型问题的关键;结合毕业设计场景,需平衡技术可行性与学术规范性,例如采用模拟数据规避爬虫法律风险,通过骨架屏和预加载提升用户体验。本文围绕‘在线小说应用’这一典型课题,系统拆解从开题选型、内容合规、架构落地到答辩呈现的完整闭环,为计算机与软件工程专业学生提

weixin_34221332的博客 456

微信小程序 createInnerAudioContext不播放问题

-- js-- audioCtx:null, playtap(){ this.audioCtx=wx.createInnerAudioContext() this.audioCtx.src="../image/1.mp3" this.audioCtx.play() this.audioCtx.onError(function(res){ console.log(res) }) 学习使用音频API createInnerAudioContext...

redrose311的博客 2221

微信小程序中悬浮窗功能的实现代码

悬浮窗就是图中微信图标的按钮,采用fixed定位,可拖动和点击。本文给大家分享一个比较常见的常见,通过实例代码给大家介绍微信小程序中悬浮窗功能的实现,一起看看吧

MAX96712在车载摄像头系统中的带宽分配与传输能力计算解析

在计算摄像头带宽与传输接口的关系时,需要考虑视频流的像素分辨率、帧率、颜色深度等因素。以 MAX96712 这种 GMSL2 产品为例,它支持每个链路在正向方向以 3Gbps 或 6Gbps 的固定速率工作。

weixin_43199439的博客 3330

微信小程序wx.getBackgroundAudioManager()背景音频播放

显现的功能: 开始播放、暂停播放、停止播放、进度条显示(没有做拖拽进度条) 效果 播放状态是个动图(图是网上随便找的,如侵删) 暂停状态是静态图片: app.json设置 首先要在app.json里设置: "requiredBackgroundModes":["audio","backgroundAudioManager"] 目的是使播放器可以息屏播放。 wxml页面显示设置 <view class="spotAudio"> <image src="https://

林啾啾的博客 6629

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 433

[微信小程序/uniapp] 锁屏/后台 状态下的音频控制方案

当然,以上这一切,全部都是使用getBackgroundAudioManager相关API实现,相当于锁屏的同时播放一个音频,等待锁屏或切换后台,随后再进行控制,就不受规则影响了。但在切换至后台、锁屏等情况前,就已经处于播放音频中的状态下,后续是可以进行控制的。在onHide生命周期中,加入背景音频的播放事件。

jinwenshuo2007的博客 2715

ADK 第一篇 Google Agent Development Kit 简介

是一个灵活且模块化的框架,专为开发和部署AI智能体而设计。虽然ADK针对Gemini和Google生态系统进行了优化,但它与模型无关、与部署环境无关,并兼容其他框架。ADK的核心理念是让智能体开发更接近传统软件开发模式,从而帮助开发者更轻松地构建、部署和编排智能体架构——无论是处理简单任务,还是管理复杂工作流。:利用预置工具、自定义函数、OpenAPI规范或集成现有工具,赋予智能体多样化能力,实现与谷歌生态系统的深度整合。

2501_90353350的博客 3043

VM与欧姆龙PLC通讯设置实战:Fins TCP/UDP协议详解

本文详细解析了VM(VisionMaster)与欧姆龙PLC通过Fins TCP/UDP协议进行通讯的实战设置。内容涵盖网络配置、协议选择(TCP可靠性与UDP实时性)、VM端地址映射与数据点添加、以及数据接收解析流程,并提供了常见错误排查与高级调试技巧,帮助视觉与自动化工程师快速实现稳定可靠的工业通讯集成。

weixin_29172963的博客 329

微信小程序音频播放时手机锁屏后重新打开导致onTimeUpdate不生效

解决办法: 在onShow钩子函数中再绑定一次onTimeUpdate onShow: function () { let audioContext = this.data.audioContext; audioContext.onPlay(() => { audioContext.onTimeUpdate(() => { let currentTime = audioContext.currentTime; let duration

Zmikoo学习之路 1860

DEA各种模型原理及stata代码实现

DEA各种模型原理及stata代码实现DEA各种模型原理及stata代码实现一、CCR和BCC1.原理2.效率测算stata代码3.Malmquist指数3.1M指数3.2Global-Malmquist指数4.指数计算代码与案例二、SBM模型1.原理2.stata代码实现三、方向性距离函数(DDF)1.原理2.stata代码实现3.非径向DDF模型(NDDF)3.GML指数4.指数测算四、总结 DEA各种模型原理及stata代码实现 一、CCR和BCC 1.原理 CCR模型产出导向下的效率通过求解以下规划

wonder1322的博客 4万+

微信小程序音频播放

微信小程序播放音频有2种方式,一个是正常播放音频,一个是背景音频,这两个虽然都可以让音频进行播放,api也有很多相同的地方,但是还是有区别的,背景音频播放可以在锁屏的情况下,及小程序所有页面播放,正常的音频只能在当前页面播放。

xingchen_xc的博客 6165

【全志V821_FoxPi】6-2 IMX219 MIPI摄像头适配

全志V821芯片适配IMX219 MIPI摄像头(2lane)教程,基于FoxPi开发板V1.2 SDK。文章详细介绍了IMX219的技术参数(800万像素、1/4英寸CMOS、支持1080P@30fps输出)及模组接口原理图。重点展示了设备树配置方法,包括PIO引脚定义(TWI0使用PA3/PA4,复位引脚PA2)、TWI0节点设置(100kHz时钟)以及VIND0节点中sensor0的完整配置(I2C地址0x20、MCLK0、RAW格式输出等)。配置过程强调需注意IMX219的器件地址转换(0x10→0

第四维度的博客 2254

C# 实现 Modbus 通信全教程(支持 TCP 和 RTU,含完整错误处理)

环境准备:安装 NModbus4 库,明确设备参数(IP/串口、地址、数据类型);连接设备:TCP 用 TcpClient,RTU 用 SerialPort,注意超时和参数匹配;读写数据:根据数据类型调用对应方法(读保持寄存器用 ReadHoldingRegisters);错误处理:捕获连接、超时、协议等异常,针对性排查问题。掌握这些后,即可轻松实现与工业设备的 Modbus 通信,为上位机开发提供稳定的数据交互能力。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2068

微信小程序播放背景音乐,关闭背景音乐的操作

多读多写多记录,多学多练多思考。----------- Grapefruit.Banuit Gang(香柚帮) 微信小程序打开某个页面播放背景音乐,离开此页面时关闭背景音乐 一、首先在app.json中配置一下 { "pages": [ "pages/index/index" ], "requiredBackgroundModes":["audio"], } 二、要在...

@Grapefruit的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

uni-app利用原生子窗体解决悬浮窗口播放问题及踩坑记录

最近找到一个VUE的文档,它将VUE的各个知识点进行了总结,整理成了《Vue 开发必须知道的36个技巧》。内容比较详实,对各个知识点的讲解也十分到位。

梅花寺 1991

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【微信小程序开发(八)】音频背景音乐播放问题汇总

播放结束触发onEnded方法 一旦结束,则 小程序将wx.$globalData.backgroundAudioManager.src立即变为空字符串。在播放控制时间进度的代码中添加如下判断。

谁说学美术将来只能卖画了,我也有自己的梦想。 2506

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

微信小程序全局音频设置,手机上播放不了音频的问题解决方案,微信小程序音频无法播放问题.

的微信小程序设置全局音频: 微信小程序目前已经不支持audio组件的使用, 只能使用wx.createInnerAudioContext接口. 具体操作如下 app.js文件的设置 // app.js App({ onLaunch() { // 进入小程序的时候获取wx.createInnerAudioContext() this.globalData.myaudio = wx.createInnerAudioContext() }, ...

qq_37189642的博客 1万+

微信小程序自定义音频组件,自定义滚动条,单曲循环,循环播放 小程序自定义音频组件,带滚动条

1,app,json里面配置 “requiredBackgroundModes”: [ “audio”, “location” ], 2,app.js里面配置 globalData: { userInfo: null, global_bac_audio_manager: { manage: wx.getBackgroundAudioManager(), is_play: false, id: ‘...

bill的博客 3035

微信小程序 audio组件 默认控件 无法隐藏/一直显示/改了controls=‘false’也没用2019/5/28

<audio>默认控件,如果需要隐藏,不需要特意设置controls = 'false',直接把这个属性删除即可,不然无论如何都会存在 之前,设置了controls = 'false' <audio src="{{current.src}}" action="{{audioAction}}" bindplay="audioPlayed" ...

FlyDangerFox的博客 3875

小程序悬浮窗(拖动)

wxml: wxjs: Component({ /** 组件的属性列表 */ properties: { windowHeight: { type: String,//类型 value: ‘default value’//默认值 }, windowWidth: { type: String,//类型 value: ‘default value’//默认值 }, ballRight: { type: Number,//类型 value: ‘default value’//默认值 }, ballBottom

weixin_42934142的博客 1140

小程序自定义音频组件

舍弃掉小程序原有的样式,因为小程序原有的样式既不好看,还无法自定义宽高(无法全屏)比较鸡肋 下面是我自定义之后的样式 话不多说,上代码: <view class="baner"> <!-- 背景图 --> <image class='audioBg' src='{{staticImg}}detailsPge/bannerIm...

weixin_30764883的博客 2138
上一篇: 微信小程序:音频后台播放:getBackgroundAudioManager 问题,是否有bug?
下一篇: 微信小程序:保持常亮
lessCoder
博客等级 码龄6年 0粉丝 8原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值