audio

音频。

效果展示

示例代码

WXML

<view class="page">
<view class="page__hd">
<text class="page__title">audio</text>
<text class="page__desc">音频</text>
</view>
<view class="page__bd">
<view class="section tc">
<audio
poster="{{poster}}" name="{{name}}" author="{{author}}" src="{{src}}" id="myAudio"
bindpause="bindpause"
bindplay="audioPlayed"
bindtimeupdate="bindtimeupdate"
bindended="bindended"
loop="{{true}}"
controls>
</audio>
</view>

<button type="primary" bindtap="audioPlay">播放</button>
<button type="primary" bindtap="audioPause">暂停</button>
<button type="primary" bindtap="audio14">设置当前播放时间为28秒</button>
<button type="primary" bindtap="audioStart">回到开头</button>
</view>
</view>

JS

Page({
data: {
poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',
name: '此时此刻',
author: '许巍',
src: 'http://5.1015600.com/2014/ring/000/118/28b0e17cfab0136677648b39cb8b7fbc.mp3'
},
audioPlayed: function (e) {
console.log('audio is played')
console.log(e);
this.setData({
play: JSON.stringify(e)
})
},
bindpause: function (e) {
console.log('audio is pause');
this.setData({
pause: JSON.stringify(e)
})
},
bindtimeupdate: function (e) {
console.log('audio is timeupdate');
this.setData({
timeupdate: JSON.stringify(e)
})
// console.log(e)
},
bindended: function (e) {
console.log('audio is ended');
this.setData({
ended: JSON.stringify(e)
})
},

onReady: function (e) {
// 使用 wx.createAudioContext 获取 audio 上下文 context
this.audioCtx = wx.createAudioContext('myAudio')
},
audioPlay: function () {
this.audioCtx.play()
},
audioPause: function () {
this.audioCtx.pause()
},
audio14: function () {
this.audioCtx.seek(28)
},
audioStart: function () {
this.audioCtx.seek(0)
}
})

API

属性 类型 默认值 必填 说明
id string audio 组件的唯一标识符
src string 要播放音频的资源地址
loop boolean false 是否循环播放
controls boolean false 是否显示默认控件
poster string 默认控件上的音频封面的图片资源地址,如果 controls 属性值为 false 则设置 poster 无效
name string 未知歌曲 默认控件上的音频名字,如果 controls 属性值为 false 则设置 name 无效
author string 未知作者 默认控件上的作者名字,如果 controls 属性值为 false 则设置 author 无效
bindplay eventhandle 当开始/继续播放时触发play事件
bindpause eventhandle 当暂停播放时触发 pause 事件
bindtimeupdate eventhandle 当播放进度改变时触发 timeupdate 事件,detail = {currentTime, duration}
bindended eventhandle 当播放到末尾时触发 ended 事件

多平台支持

属性 平台支持
id 支付宝
src 支付宝
loop 支付宝
controls 支付宝
poster 支付宝
name 支付宝
author 支付宝
bindplay 支付宝
bindpause 支付宝
bindtimeupdate 支付宝
bindended 支付宝

注释:

支付宝1.6.0版本开始,该组件不再维护,播放有问题(卡顿,资源加载问题),建议使用能力更强的my.createInnerAudioContext接口