音频
qh.createInnerAudioContext
解释: 创建并返回内部 audio 上下文 innerAudioContext
对象。
方法参数: 无
返回值:innerAudioContext
innerAudioContext
innerAudioContext
对象的属性列表:
方法 | 参数 | 只读 | 说明 |
---|---|---|---|
src | String | 否 | 音频的数据链接,用于直接播放。 |
startTime | Number | 否 | 开始播放的位置(单位:s),默认 0 。 |
loop | Boolean | 否 | 是否循环播放,默认 false。 |
volume | Number | 否 | 音量,范围 0~1。 |
duration | Number | 是 | 当前音频的长度(单位:s),只有在当前有合法的 src 时返回 。 |
currentTime | Number | 是 | 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位 。 |
paused | Boolean | 是 | 当前状态:true 表示暂停或停止,false 表示正在播放。 |
buffered | Number | 是 | 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲。 |
innerAudioContext
innerAudioContext
对象的方法列表:
事件名 | 说明 | 参数 |
---|---|---|
play | 播放 | |
pause | 暂停。暂停后的音频再播放会从暂停处开始播放 | |
stop | 停止。停止后的音频再播放会从头开始播放。 | |
seek | 跳转到指定位置 | number position |
destroy | 销毁当前实例 | |
onCanplay | 监听音频进入可以播放状态的事件。但不保证后面可以流畅播放 | function callback |
offCanplay | 取消监听音频进入可以播放状态的事件 | function callback |
onPlay | 监听音频播放事件 | function callback |
offPlay | 取消监听音频播放事件 | function callback |
onPause | 监听音频暂停事件 | function callback |
offPause | 取消监听音频暂停事件 | function callback |
onEnded | 监听音频自然播放至结束的事件 | function callback |
offEnded | 取消监听音频自然播放至结束的事件 | function callback |
onTimeUpdate | 监听音频播放进度更新事件 | function callback |
offTimeUpdate | 取消监听音频播放进度更新事件 | function callback |
onError | 监听音频播放错误事件 | function callback |
offError | 取消监听音频播放错误事件 | function callback |
onWaiting | 监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发 | function callback |
offWaiting | 取消监听音频加载中事件 | function callback |
onSeeking | 监听音频进行跳转操作的事件 | function callback |
offSeeking | 取消监听音频进行跳转操作的事件 | function callback |
onSeeked | 监听音频完成跳转操作的事件 | function callback |
offSeeked | 取消监听音频完成跳转操作的事件 | function callback |
示例:
- 在 html 文件中
<div >
<se-button type="primary" @click="play">play</se-button>
<se-button type="primary" @click="pause">pause</se-button>
<se-button type="primary" @click="stop">stop</se-button>
<se-button type="primary" @click="seek">seek</se-button>
<se-button type="primary" @click="destroy">destroy</se-button>
<se-button type="primary" @click="offTimeUpdate">offTimeUpdate</se-button>
</div>
- 在 js 文件中
Page({
mounted() {
const innerAudioContext = qh.createInnerAudioContext();
innerAudioContext.src = 'http://s3.qhres.com/static/1d7774ba4a6a3041.mp3';
innerAudioContext.autoplay = false;
innerAudioContext.onPlay(res => {
qh.showToast({
title: 'play',
icon: 'none'
});
console.log('onPlay', res);
});
innerAudioContext.onPause(res => {
qh.showToast({
title: 'pause',
icon: 'none'
});
console.log('onPause', res);
});
innerAudioContext.onEnded(res => {
qh.showToast({
title: 'end',
icon: 'none'
});
console.log('onEnded', res);
});
innerAudioContext.onTimeUpdate(res => {
console.log('onTimeUpdate', res);
});
innerAudioContext.onError(res => {
qh.showToast({
title: 'error',
icon: 'none'
});
console.log('onError', res);
});
innerAudioContext.onWaiting(res => {
qh.showToast({
title: 'waiting',
icon: 'none'
});
console.log('onWaiting', res);
});
this.innerAudioContext = innerAudioContext;
},
methods: {
play() {
this.innerAudioContext.play();
},
pause() {
this.innerAudioContext.pause();
},
stop() {
this.innerAudioContext.stop();
},
seek() {
this.innerAudioContext.seek(10);
},
destroy() {
this.innerAudioContext.destroy();
},
offTimeUpdate() {
this.innerAudioContext.offTimeUpdate(res => {
qh.showToast({
title: 'offTimeUpdate',
icon: 'none'
});
console.log('offTimeUpdate', res);
});
}
}
});