微信小程序 audio 音频 组件

ゞ 浴缸里的玫瑰 2021-09-08 06:18 646阅读 0赞

完整微信小程序(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 是否显示默认控件 1.0.0
poster string 默认控件上的音频封面的图片资源地址,如果 controls 属性值为 false 则设置 poster 无效 1.0.0
name string 未知音频 默认控件上的音频名字,如果 controls 属性值为 false 则设置 name 无效 1.0.0
author string 未知作者 默认控件上的作者名字,如果 controls 属性值为 false 则设置 author 无效 1.0.0
binderror eventhandle 当发生错误时触发 error 事件,detail = {errMsg:MediaError.code} 1.0.0
bindplay eventhandle 当开始/继续播放时触发play事件 1.0.0
bindpause eventhandle 当暂停播放时触发 pause 事件 1.0.0
bindtimeupdate eventhandle 当播放进度改变时触发 timeupdate 事件,detail = {currentTime, duration} 1.0.0
bindended eventhandle 当播放到末尾时触发 ended 事件 1.0.0

MediaError.code


























返回错误码 描述
1 获取资源被用户禁止
2 网络错误
3 解码错误
4 不合适资源

示例代码

在开发者工具中预览效果

index.xml

  1. <view class="page">
  2. <view class="page__hd">
  3. <text class="page__title">audio</text>
  4. <text class="page__desc">音频</text>
  5. </view>
  6. <view class="page__bd">
  7. <view class="section section_gap">
  8. <audio src="{ {current.src}}" poster="{ {current.poster}}" name="{ {current.name}}" author="{ {current.author}}" action="{ {audioAction}}" bindplay="audioPlayed" bindtimeupdate="audioTimeUpdated" controls></audio>
  9. </view>
  10. </view>
  11. <view class="section section_gap">
  12. <text class="section__title">播放</text>
  13. <view class="body-view">
  14. <button bindtap="playAudio">播放</button>
  15. </view>
  16. </view>
  17. <view class="section section_gap">
  18. <text class="section__title">暂停</text>
  19. <view class="body-view">
  20. <button bindtap="pauseAudio">暂停</button>
  21. </view>
  22. </view>
  23. <view class="section section_gap">
  24. <text class="section__title">进度</text>
  25. <view class="body-view">
  26. <slider bindchange="timeSliderChanged" left-icon="cancel" right-icon="success_no_circle"/>
  27. </view>
  28. </view>
  29. <view class="section section_gap">
  30. <text class="section__title">播放速率</text>
  31. <view class="body-view">
  32. <slider min="1" max="4" bindchange="playbackRateSliderChanged" left-icon="cancel" right-icon="success_no_circle"/>
  33. </view>
  34. </view>
  35. </view>

index.js

  1. Page({
  2. data: {
  3. current: {
  4. poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',
  5. name: '此时此刻',
  6. author: '许巍',
  7. src: 'https://win-web-nf01-sycdn.kuwo.cn/dfec2ffc8e070e96101b21bd804de6e7/60bed777/resource/n1/73/40/4073043717.mp3',
  8. },
  9. audioAction: {
  10. method: 'pause'
  11. }
  12. },
  13. audioPlayed: function (e) {
  14. console.log('audio is played')
  15. },
  16. audioTimeUpdated: function (e) {
  17. this.duration = e.detail.duration;
  18. },
  19. timeSliderChanged: function (e) {
  20. if (!this.duration)
  21. return;
  22. var time = this.duration * e.detail.value / 100;
  23. this.setData({
  24. audioAction: {
  25. method: 'setCurrentTime',
  26. data: time
  27. }
  28. });
  29. },
  30. playbackRateSliderChanged: function (e) {
  31. this.setData({
  32. audioAction: {
  33. method: 'setPlaybackRate',
  34. data: e.detail.value
  35. }
  36. })
  37. },
  38. playAudio: function () {
  39. this.setData({
  40. audioAction: {
  41. method: 'play'
  42. }
  43. });
  44. },
  45. pauseAudio: function () {
  46. this.setData({
  47. audioAction: {
  48. method: 'pause'
  49. }
  50. });
  51. }
  52. })

运行效果:

在这里插入图片描述

微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

发表评论

表情:
评论列表 (有 0 条评论,646人围观)

还没有评论,来说两句吧...

相关阅读

    相关 程序播放音频列表

    微信小程序的音频播放    链接:[单曲播放][Link 1]   对于音频的播放,肯定会有多首音频的情况,这个时候播放下一曲的功能就需要做出来: 我这边做了一个粗糙的版

    相关 程序 - 组件

    > 微信小程序为开发者提供了一系列基础组件,使开发者可以进行快速开发。同时还支持自定义组件,提升代码复用性,有助于代码维护。 一、基础组件 > 基础组件主要分为:视图容