微信小程序学习:audio组件发现的几个问题

开发 | 微信小程序audio音频播放组件+api_wx.createAudioContext 引言:audio是微信小程序中的音频组件,可以轻松实现小程序中播放/停止音频等自定义动作。附上微信小程序audio组件的相关属性说明:https://mp.weixin.qq.com/debug/wxadoc/dev/component/audio.html本次将通过小程序audio的 poster、name、author、src、id、controls 属性,以及相关api:wx.createA 阅读详情

      这个只测试了action的method=play的情况下,其它的方法我有稍微改变了下src和action方法,发现只要一切换其它action方法和src歌曲后,歌曲都是未开播状态,所以应该不会出现什么问题。主要是play的情况下有几个小问题需要注意下!先上官方源码:

wxml::

<!-- 循环播放 -->
<audio poster="{{poster}}" name="{{name}}" author="{{author}}" src="{{src}}" action="{{action}}" controls loop></audio>

<button type="primary" bindtap="audioPlay">播放</button>

js::

Page({
  data: {
    poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',
    name: '此时此刻',
    author: '许巍',
    src: 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46',
  },
  audioPlay: function () {
     this.setData({
       action: {
         method: 'play'
       }
     })
  },
  onLoad: function(options){

  }
})


以上是官方源码,执行都正常,但是我做了如下测试:

1、action的赋值方式

this.setData({
      'action.method': 'play'
    })

我修改成这种赋值方式也能正常开启播放,如果我在page的data里面预先创建action对象,虽然值有被正常修改过来,但是音乐就是无法一开启就播放,需要按f5刷新下页面。完整测试代码如下:

Page({
  data: {
    poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',
    name: '此时此刻',
    author: '许巍',
    src: 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46',
    action:
    {
      method: 'pause'
    }
  },
  audioPlay: function () {
    this.setData({
      'action.method': 'play'//在data里面先定义action,这种赋值方式有效但是播放无效,需要再次刷新页面
    })
  })

演示效果:



2、更改了src曲目后在开启播放状态

this.setData({
      src: "../audio/files/AlexGoot&KurtSchneider&Eppic-SeeYouAgain.aac",
       action: {
         method: 'play'
       }
    })

我修改了src的曲目,发现不管有没有在data里面预先定义action对象都是能修改状态值,但是音乐就是无法播放,需要点击两次按钮,或者f5刷新下页面才有效。

演示效果【左边是点击两次才开启播放,右边是点击后在刷新才能开启播放】:




最后发现修改src和action分开设定就能正常播放了。完整代码如下:

Page({
  data: {
    poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',
    name: '此时此刻',
    author: '许巍',
    src: 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46',
    action:
    {
      method: 'pause'
    }
  },
  audioPlay: function () {
    this.setData({
      src: "../audio/files/AlexGoot&KurtSchneider&Eppic-SeeYouAgain.aac",
    })
     this.setData({
       action: {
         method: 'play'//需要分开设置
       }
     })
  })
或者下面这种方式也可以:

Page({
  data: {
    poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',
    name: '此时此刻',
    author: '许巍',
    src: 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46',

  },
  audioPlay: function () {
    this.setData({
      src: "../audio/files/AlexGoot&KurtSchneider&Eppic-SeeYouAgain.aac",
    })
    this.setData({
      'action.method': 'play'//data没有定义action,使用这种赋值方式
    })
  })



      总结以上两种方案:

1、初始化data不设定action,可以使用"action.method": "play"修改状态

2、修改src曲目的时候不管有没有初始化设定action,修改action的状态都要分开设定


*************************************************************************************************************************

目前audio组件微信小程序已经移除,也就不存在这个情况了,不过使用接口形式来设置action还是存在一个渲染时间问题,暂时还不知道怎么解决


【愚公系列】《微信小程序开发解析》010-媒体组件 随着微信小程序的普及,开发者们越来越重视如何在小程序中呈现丰富的多媒体内容。媒体组件作为微信小程序的重要组成部分,为开发者提供了强大的工具来嵌入和控制图片、音频、视频等多媒体元素,使得用户体验更加生动和互动。本篇文章将详细介绍微信小程序中的媒体组件,包括其主要类型、使用方法及其在实际开发中的应用场景。我们将通过具体实例和代码示例,帮助大家快速掌握这些组件的基本用法和高级技巧,提升开发效率和应用品质。同时,我们还会分享一些常见问题的解决方案及最佳实践,帮助开发者避免常见的坑,提高项目的稳定性和用户满意度。 阅读详情

相关推荐

微信小程序audio组件渲染层错误分析与解决方案:从DOMException到流畅播放

本文深入分析了微信小程序audio组件在Windows等环境下常见的渲染层DOMException错误根源,指出其本质是播放指令与音频资源加载的时序冲突。文章提供了从基础延迟播放到进阶事件监听,再到使用InnerAudioContext API的完整解决方案,帮助开发者实现稳定流畅的音频播放体验。

weixin_29005499的博客 266

小程序 播放器 后台 下一曲 错误 解决 尝试

小程序后台音乐播放器 backgroundaudiomanger 在手机息屏后 切换下一曲的话 会报一个错误。意思就是 音乐已经播放结束了,然后不能重新开启音乐了。看了官方文档 结果还是一样的,所以找了个临时解决方案。我的思路是 在 音乐结束前 的几秒时间切换下一曲,这样就不算是 重新播放音乐了 就不会报错了。ontimeupdate 里面 获取音乐全长和当前时间的比例 超过 99.1% 就切换下一个。思路就是 不让音乐 结束播放 一旦结束播放的话 后台下一曲的时候就不能开始播放了。

uygurjan2008的专栏 1092

【微信小程序】媒体组件-audio组件

audio组件允许开发者在微信小程序中嵌入音频播放功能。用户可以通过这个组件播放在线音频文件,并且可以控制播放、暂停、跳转等功能。audio组件支持多种配置选项,以满足不同的应用场景需求。

墨夶的博客 1285

微信小程序音频播放失败:TypeError: Cannot read property ‘duration‘ of undefined

TypeError: Cannot read property 'duration’ of undefined WAService at e.length.r (WAServiceMainContext..32694175&v-2.33.0:1) at WAServiceMainContext.32694175&v=2.33.0:1 at Array.forEach ()at AudioContext.Tx.decodeAudioData.r (WAServiceMainContext

前端、python爱好者 3692

【微信小程序】10分钟掌握微信小程序audio组件,你还在等什么?

通过以上详细的介绍,相信你已经对微信小程序中的audio组件有了全面的了解。audio组件虽然看似简单,但功能强大,能够帮助开发者实现音频播放、暂停、跳转等多种功能,提升用户的互动体验。只要你掌握了这些基础知识和技巧,就能轻松应对各种开发任务。希望你能轻松掌握这些技能,成为微信小程序开发的高手!🌟🚀下次见,祝你开发愉快!👋🎉。

java专栏 1014

微信小程序 - 解决 <audio> 音频播放组件无法设置宽度为 100% 的问题(组件无法 style 覆盖设置样式,无法撑满父元素宽度)

Audio组件无法设置宽度,无法撑满100%宽度,微信小程序音频播放组件设置不了宽度怎么办,style设置宽度无效如何解决,小程序,小程序里的audio无法占满view层的宽度,导致无法自适应父容器宽度。微信小程序-解决音频播放组件无法设置宽度为100%的问题(组件无法style覆盖设置样式,无法撑满父元素宽度)

🏆 前端领域优质创作者 2294

微信小程序_“audio组件在ios端无法播放的解决办法“

这里面提醒一下,要用 audio组件的 api,进行音频播放。

weixin_45828554的博客 1422

Ubuntu 24.04.3 LTS 安装 OpenClaw 图文版

OpenClow安装指南

qq_17204557的博客 2548

微信小程序 audio 控制不成功的解决办法

发现微信小程序的官方文档在实时跟新,之前的有些标签或者方法不见了。以上是控制audio组件的方法是根据组件的唯一id生成相应的实例对象,通过对象的各种发放来控制组件。我现在看到的官方文档是通过有个action属性,给属性指定特定的值组件就会执行特定的动作。 method 描述 data play 播放 pause 暂停 setPlaybackRate 调整速度 倍速 setCurrentTime 设置当前时间 播放时间 .wxml <audio poster="{{poster}}" name=

qq_41383999的博客 1477

ArcGIS拓扑检查实战:5分钟搞定面重叠与缝隙问题(附详细截图)

本文详细介绍了如何使用ArcGIS进行拓扑检查,快速解决面重叠与缝隙问题。通过搭建拓扑检查环境、配置拓扑规则、五步闪电修复法及批量处理技巧,帮助用户高效完成数据修正,提升GIS数据质量。特别适合地籍管理、规划红线等场景应用。

z4a5b6的博客 741

NS-3 和Aqua-sim-ng 学习笔记(一)

因为要搞水下网络,OMNET++不太合适,就转Aqua-sim。这是基于NS-2上的模型,NS-2需要额外学一门tcl脚本语言。 正好查到它的一个升级版Aqua-sim-NG,在github上,https://github.com/rmartin5/aqua-sim-ng是基于NS-3的,只需要基本的C++,不用学tcl语言。美滋滋。 装好ubuntu之后,安装NS-3和Aqu...

diboshang8820的博客 2191

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

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

qq_37189642的博客 1万+

ComfyUI 提示Allocation on device 显存占满的解决方法及秋叶整合包的优化方法

最近在玩ComfyUI的时候,发现一个让人崩溃的问题——VRAM一直占满,最终报错: 简单来说,就是显卡显存溢出了,导致程序无法继续运行。尤其是一些大模型或者复杂工作流,很容易让显存飙升到极限。那怎么办?直接在启动命令后加上 ,例如: 这个参数的作用是啥? 默认情况下,ComfyUI会尽量让模型一直留在显存里,即使有些部分暂时用不到,导致显存迟早被填满。而 可以强制让ComfyUI把数据卸载到常规内存,减少显存占用。如果你的显存真的不够用,还可以再加 参数: 这个参数的意思就是开启低显存模式,进一步优化

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

微信小程序组件:audio及api

一、audio标签 audio为小程序中的音频组件,我们可以轻松的在小程序中播放音频。 下面是组件的相关属性的说明 属性 类型 默认值 说明 id String video 组件的唯一标识符 src String 要播放音频的资源地址 loop Boolean false 是否循环播放 con

jingsi1991的博客 9240

ABAP 里解构引用操作符 ->* 的使用方法详解

解除引用操作符->*可用于将“类型为REF TO …的引用变量”的值(即该引用所指向内存)取出,从而访问其实际值或内部组件。具体地,若dref是一个“引用变量”,则表达式dref->*代表对该引用进行“解除引用”,使得程序按静态类型将其视为实际类型的值对象。例如,若lr类型声明为,则lr->*表示“将 lr 引用的INT4对象看作INT4类型并访问其值”。注:若 “数据引用变量” 的静态类型是通用类型DATA,则只能在这种上下文中使用->*。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 478

图像算法中的 Blob 分析

在计算机视觉中,Blob 可以理解为在图像中具有相似性质(如颜色、亮度等)的像素群体。Blob 通常用作基本单元,在图像分析和处理任务中能够提取出有意义的特征。

m0_44975814的博客 2483

微信小程序 audio 音频 组件

完整微信小程序(Java后端) 技术贴目录清单页面(必看) 音频。1.6.0版本开始,该组件不再维护。建议使用能力更强的 wx.createInnerAudioContext 接口 属性 类型 默认值 必填 说明 最低版本 id string 否 audio 组件的唯一标识符 1.0.0 src string 否 要播放音频的资源地址 1.0.0 loop boolean false 否 是否循环播放 1.0.0 controls boolean false 否 是否显示默认

java1234的博客 2409

YOLOv11原创改进专栏|原创自研篇|DAA模块手把手添加教程

个人简介:大家好!我是 DAA 注意力机制,堪称深度学习中的“聚光灯”。我的任务是帮助模型聪明地识别关键特征,就像一位经验丰富的侦探,能够在繁杂的数据中找到重要线索。通过结合通道和空间的注意力,我能确保模型把重点放在最有价值的信息上,从而提升识别准确率。简单来说,我就是帮助你的模型变得更加专注、敏锐,让它在一堆数据中轻松找到“宝藏”,为检测精度加分!动态适应性特征提取DAA通过动态生成卷积核来适应输入特征的变化,从而实现针对不同数据的自适应特征提取。

mywhyyds的博客 379

微信小程序-audio组件-替换自己喜欢的音乐

一.audio组件属性 属性名 类型 默认值 说明 id String   audio 组件的唯一标识符 src String   要播放音频的资源...

watt的博客 3370

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【微信小程序】媒体组件(一)audio

周四没有课,开心,写个博客庆祝一下。 今天记录一下audio的基本使用,首先看下效果图。(声音请脑补一下~) 1.介绍一下audio属性(来自微信官方文档) 属性名 类型 默认值 说明 id String audio 组件的唯一标识符 src String 要播放音频的资源地址 loop Boole

不想做菜鸟的小螃蟹 3369

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

『从零开始学小程序』媒体组件audio组件

audio组件:音频组件。在页面插入一段音频或者播放音乐有3种处理方法。简单的插入audio组件,并利用组件的属性控制播放利用AudioContext类,通过指定方法获取实例使用功能最全的InnerAudioContext下面我们来一一了解三种方法的使用。不过在基础库1.6.0版本之后就不再维护前两种方法了,我们实际开发还是用第三种InnerAudioContext。

一个专注于客户端开发的技术er,不定期更新Android,Flutter,HormonyOS等方向的使用心得和感悟 3635

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

微信小程序官方组件展示之媒体组件audio源码

以下将展示微信小程序之媒体组件audio源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。功能描述:音频。

软件事业部的博客 829

wpf image点击事件_微信小程序 | audio 组件,image 组件,video 组件

手把手教你玩转微信小程序《九》:audio 组件,image 组件,video 组件.audio 组件01音频播放已经封装的很好!只需配合属性设置即可!(method 和 data 配合使用)主要属性:wxmlaction="{{action}}"src=\'http://sc1.111ttt.com/2016/1/09/26/202261732256.mp3\'poster= ...

weixin_39552286的博客 389

微信小程序之audio组件播放背景音乐

audio组件播放音频 在微信小程序中可以通过audio组件实现背景音乐的效果,不过有一缺点,真机调试的时候没有声音 1.wxml 文件 <audio id="music" src="{{src}}"></audio> 2.js文件 onReady:function(){ // 使用 wx.createAudioContext 获取 audio 上下文 context ...

就是有点怕怕的博客 3152

微信小程序——【五】媒体组件(audio,video,image)之audio音频组件

audio音频组件 audio.wxml文件 <view class="container"> <audio poster="{{poster}}" name="{{name}}" author="{{author}}" src="{{src}}" action="{{action}}" controls loop></audio> ...

weixin_41550144的博客 1646
上一篇: 微信小程序学习:location API接口
下一篇: 微信小程序学习:使用picker封装省市区三级联动模板
草灯
博客等级 码龄15年 150粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值