audio
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
action | Object | 控制音频的播放、暂停,播放速率、播放进度的对象,有method和data两个参数 | |
src | String | 要播放音频的资源地址 | |
loop | Boolean | false | 是否循环播放 |
controls | Boolean | true | 是否显示默认控件 |
poster | String | 默认控件上的音频封面的图片资源地址,如果controls属性值为false则设置poster无效 | |
name | String | 未知音频 | 默认控件上的音频名字,如果controls属性值为false则设置name无效 |
author | String | 未知作者 | 默认控件上的作者名字,如果controls属性值为false则设置author无效 |
binderror | EventHandle | 当发生错误时触发error事件,detail = {errMsg: MediaError.code} | |
bindplay | EventHandle | 当开始/继续播放时触发play事件 | |
bindpause | EventHandle | 当暂停播放时触发pause事件 | |
bindratechange | EventHandle | 当播放速率改变时触发ratechange事件 | |
bindtimeupdate | EventHandle | 当播放进度改变时触发timeupdate事件,detail = {currentTime, duration} | |
bindended | EventHandle | 当播放到末尾时触发ended事件 |
MediaError.code
返回错误码 | 描述 |
---|---|
MEDIA_ERR_ABORTED | 获取资源被用户禁止 |
MEDIA_ERR_NETWORD | 网络错误 |
MEDIA_ERR_DECODE | 解码错误 |
MEDIA_ERR_SRC_NOT_SUPPOERTED | 不合适资源 |
Action
method | 描述 | data |
---|---|---|
play | 播放 | |
pause | 暂停 | |
setPlaybackRate | 调整速度 | 倍速 |
setCurrentTime | 设置当前时间 | 播放时间 |
示例代码:
action的method属性只能是play
、pause
、setPlaybackRate
、setCurrentTime
,用法如下:
<!-- 循环播放 -->
<audio poster="{{poster}}" name="{{name}}" author="{{author}}" src="http://qqma.tingge123.com:823/mp3/2015-06-13/1434188181.mp3" action="{{action}}" controls loop></audio>
<button type="primary" bindtap="audioPlay">播放</button>
<button type="primary" bindtap="audioPause">暂停</button>
<button type="primary" bindtap="audioPlaybackRateSpeedUp">调为2倍速</button>
<button type="primary" bindtap="audioPlaybackRateNormal">调为1倍速</button>
<button type="primary" bindtap="audioPlaybackRateSlowDown">调为0.5倍速</button>
<button type="primary" bindtap="audio14">设置当前播放时间为14秒</button>
<button type="primary" bindtap="audioStart">回到开头</button>
// app-service
Page({
data: {
poster: 'http://pic.pimg.tw/pam86591/1408719752-3322564110_n.jpg',
name: 'Sugar'
author: 'Maroon 5'
},
audioPlay: function () {
this.setData({
action: {
method: 'play'
}
});
},
audioPause: function () {
this.setData({
action: {
method: 'pause'
}
});
},
audioPlaybackRateSpeedUp: function () {
this.setData({
action: {
method: 'setPlaybackRate',
data: 2
}
});
},
audioPlaybackRateNormal: function () {
this.setData({
action: {
method: 'setPlaybackRate',
data: 1
}
});
},
audioPlaybackRateSlowDown: function () {
this.setData({
action: {
method: 'setPlaybackRate',
data: 0.5
}
});
},
audio14: function () {
this.setData({
action: {
method: 'setCurrentTime',
data: 14
}
});
},
audioStart: function () {
this.setData({
action: {
method: 'setCurrentTime',
data: 0
}
});
}
})