# audio
音频播放器
升级chameleon-ui-builtin chameleon-api chameleon-bridge
npm i chameleon-ui-builtin@0.2.12 -S
npm i chameleon-api@0.5.0 -S
npm i chameleon-bridge@0.1.11 -S
# 属性
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
src | String | 是 | "" | 要播放的音频资源地址 |
loop | Boolean | 否 | false | 是否循环播放 |
controls | Boolean | 否 | false | 是否显示音频控件 |
poster | String | 否 | "" | 默认控件上的音频封面的图片资源地址 |
name | String | 否 | 未知音频 | 默认控件上的音频名字 |
author | String | 否 | 未知作者 | 默认控件上的作者名字 |
autoplay | Boolean | 否 | false | 是否自动播放音频 |
c-bind:play | EventHandle | 否 | 当开始/继续播放时触发 play 事件 | |
c-bind:pause | EventHandle | 否 | 当暂停播放时触发 pause 事件 | |
c-bind:timeupdate | EventHandle | 否 | 当播放进度改变时触发 timeupdate 事件,detail = {currentTime, duration} | |
c-bind:end | EventHadnle | 否 | 当播放到末尾时触发 ended 事件 | |
c-bind:error | EventHadnle | 否 | 当发生错误时触发 error 事件,detail = {errMsg:errorCode} |
errorCode 取值如下:
值 | 说明 | 最低版本 |
---|---|---|
10001 | 系统错误 | |
10002 | 网络错误 | |
10003 | 文件错误 | |
10004 | 格式错误 | |
-1 | 未知错误 |
# 示例
<template>
<page title="audio">
<view class="audio">
<audio
src="{{src}}"
controls="{{true}}"
autoplay="{{true}}"
loop="{{true}}"
poster="{{poster}}"
c-bind:pause="handlePause"
c-bind:play="handlePlay"
c-bind:timeupdate="handleTimeupdate"
c-bind:ended="handleEnded"
c-bind:error="handleError"
></audio>
</view>
</page>
</template>
<script>
import cml from 'chameleon-api';
class Audio {
data = {
poster:
'http://p1.music.126.net/bYTctrjUegSyzDPteIeNOw==/74766790705099.jpg?imageView&thumbnail=360y360&quality=75&tostatic=0',
src:
'http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400',
};
computed = {};
watch = {};
methods = {
handlePause(...args) {
console.log('emit-pause', args);
this.audioText = 'pause';
},
handlePlay(...args) {
console.log('emit-play', args);
this.audioText = 'play';
},
handleTimeupdate(...args) {
this.audioText = 'timeUpdate';
// console.log('timeupdate',args)
},
handleEnded(...args) {
this.audioText = 'ended';
console.log('emit-ended', args);
},
handleError(...args) {
console.log('emit-error', args);
},
};
}
export default new Audio();
</script>
<style scoped>
.audio {
padding-top: 200cpx;
}
</style>
<script cml-type="json">
{
"base": {
"usingComponents": {
},
"navigationBarTitleText": "button",
"backgroundTextStyle": "dark",
"backgroundColor": "#E2E2E2"
}
}
</script>