百度智能小程序 InnerAudioContext
2020-09-05 14:18 更新
InnerAudioContext
解释: swan.createInnerAudioContext 的返回值。
属性说明
属性名 | 说明 |
---|---|
InnerAudioContext.play | 播放 |
InnerAudioContext.pause | 暂停 |
InnerAudioContext.stop | 停止 |
InnerAudioContext.seek | 跳转到指定位置(单位:s) |
InnerAudioContext.destroy | 销毁当前实例 |
InnerAudioContext.onCanplay | 音频进入可以播放状态 |
InnerAudioContext.onPlay | 音频播放事件 |
InnerAudioContext.onPause | 音频暂停事件 |
InnerAudioContext.onStop | 音频停止事件 |
InnerAudioContext.onEnded | 音频自然播放结束事件 |
InnerAudioContext.onTimeUpdate | 音频进度更新事件 |
InnerAudioContext.onError | 音频播放错误事件 |
InnerAudioContext.onWaiting | 音频加载中事件 |
InnerAudioContext.onSeeking | 音频进行 seek 操作事件 |
InnerAudioContext.onSeeked | 音频完成 seek 操作事件 |
InnerAudioContext.offCanplay | 取消监听 onCanplay 事件 |
InnerAudioContext.offPlay | 取消监听 onPlay 事件 |
InnerAudioContext.offPause | 取消监听 onPause 事件 |
InnerAudioContext.offStop | 取消监听 onStop 事件 |
InnerAudioContext.offEnded | 取消监听 onEnded 事件 |
InnerAudioContext.offTimeUpdate | 取消监听 onTimeUpdate 事件 |
InnerAudioContext.offError | 取消监听 offError 事件 |
InnerAudioContext.offWaiting | 取消监听 onWaiting 事件 |
InnerAudioContext.offSeeking | 取消监听 onSeeking 事件 |
InnerAudioContext.offSeeked | 取消监听 onSeeked 事件 |
方法参数
方法 | 参数 | 必填 | 说明 |
---|---|---|---|
src |
String |
否 |
音频的数据链接,用于直接播放,仅支持绝对路径。 |
startTime |
Number |
否 |
开始播放的位置(单位:s),默认 0 。 |
autoplay |
Boolean |
否 |
是否自动开始播放,默认 false 。 |
loop |
Boolean |
否 |
是否循环播放,默认 false。 |
obeyMuteSwitch |
Boolean |
否 |
是否遵循系统静音开关,默认 true,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音。 |
duration |
Number |
是 |
当前音频的长度(单位:s),只有在当前有合法的 src 时返回 。 |
currentTime |
Number |
是 |
当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位 。 |
paused |
Boolean |
是 |
当前状态:true 表示暂停或停止,false 表示正在播放。 |
volume |
Number |
否 |
音量,范围 0~1。 |
支持格式
格式 | iOS | Android |
---|---|---|
flac |
否 |
是 |
amr |
否 |
是 |
wma |
否 |
是 |
ogg |
否 |
是 |
ape |
否 |
是 |
mp4 |
否 |
是 |
m4a |
是 |
是 |
wav |
是 |
是 |
mp3 |
是 |
是 |
aac |
是 |
是 |
aiff |
是 |
否 |
caf |
是 |
否 |
示例
图片示例
代码示例 1 :实例方法全集
<view class="wrap">
<view class="card-area">
<button type="primary" bindtap="play">play</button>
<button type="primary" bindtap="pause">pause</button>
<button type="primary" bindtap="stop">stop</button>
<button type="primary" bindtap="seek">seek</button>
<button type="primary" bindtap="destroy">destroy</button>
</view>
</view>
Page({
onLoad() {
// 每次触发就会注册一次回调事件,所以只需把所有回调写在onLoad中即可
const innerAudioContext = swan.createInnerAudioContext();
innerAudioContext.src = 'https://b.bdstatic.com/miniapp/images/yanyuan.mp3';
innerAudioContext.autoplay = false;
innerAudioContext.onPlay(res => {
swan.showToast({
title: '音频播放',
icon: 'none'
});
console.log('onPlay', res);
});
innerAudioContext.onCanplay(res => {
swan.showToast({
title: '音频进入可播放状态',
icon: 'none'
});
console.log('onCanplay', res);
});
innerAudioContext.onPause(res => {
swan.showToast({
title: '音频暂停',
icon: 'none'
});
console.log('onPause', res);
});
innerAudioContext.onStop(res => {
swan.showToast({
title: '音频停止',
icon: 'none'
});
console.log('onStop', res);
});
innerAudioContext.onEnded(res => {
swan.showToast({
title: '音频自然播放结束',
icon: 'none'
});
console.log('onEnded', res);
});
innerAudioContext.onTimeUpdate(res => {
console.log('onTimeUpdate', res);
});
innerAudioContext.onError(err => {
swan.showModal({
title: '音频播放错误',
content: JSON.stringify(err)
});
console.log('onError', err);
});
innerAudioContext.onWaiting(res => {
swan.showToast({
title: '音频加载中......',
icon: 'none'
});
console.log('onWaiting', res);
});
innerAudioContext.onWaiting(res => {
swan.showToast({
title: '音频加载中......',
icon: 'none'
});
console.log('onWaiting', res);
});
this.innerAudioContext = innerAudioContext;
},
play() {
this.innerAudioContext.play();
},
pause() {
this.innerAudioContext.pause();
},
stop() {
this.innerAudioContext.stop();
},
seek() {
this.innerAudioContext.seek(120);
swan.showToast({
title: '跳转到音频120s处',
icon: 'none'
});
},
destroy() {
this.innerAudioContext.destroy();
swan.showToast({
title: '音频销毁,需要重新触发创建时期',
icon: 'none'
});
},
offTimeUpdate() {
this.innerAudioContext.offTimeUpdate(res => {
swan.showToast({
title: 'offTimeUpdate',
icon: 'none'
});
console.log('offTimeUpdate', res);
});
}
});
代码示例 2 - 属性全集
Page({
onLoad() {
const innerAudioContext = swan.createInnerAudioContext();
innerAudioContext.src = 'http://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3';
innerAudioContext.startTime = 120;
innerAudioContext.autoplay = true;
innerAudioContext.loop = true;
// 一般设置obeyMuteSwitch为false,否则用户在系统静音的情况下,会认为api不能播放;
innerAudioContext.obeyMuteSwitch = false;
innerAudioContext.duration = 120;
innerAudioContext.currentTime = 90;
innerAudioContext.paused = true;
innerAudioContext.volume = 0.5;
}
});
以上内容是否对您有帮助:
更多建议: